Android新浪微博分享

作者: xinyin025 分类: Android 发布时间: 2012-11-02 14:13

在Android开发过程中,很多时候,我们都需要为我们的软件添加一个微博分享的功能。

今天,我们就尝试为我们的软件添加一个微博分享的功能。

 

第一步:去新浪微博官方申请AppKey,此部分不是今天的内容,请自行百度或Google。

 

第二步:下载新浪提供的jar包。我们下载回来的SDK目录是这样的

我们需要的是weibo.sdk.android.sso目录下的weibo.sdk.android.sso.jar

第三步:开始我们的开发路程。

1)  新建一个Android项目

2) 将weibo.sdk.android.sso.jar拷贝到libs目录里,Eclipse会自动添加到Build Path路径里,不需要我们再手动添加

3)  接下来,编写代码

MainActivity.java关键代码

Weibo mWeibo = Weibo.getInstance(CONSUMER_KEY, REDIRECT_URL);

//请替换为自己的AppKey和Redirect_url

mWeibo.authorize(MainActivity.this, new AuthDialogListener());

class AuthDialogListener implements WeiboAuthListener {

@Override

public void onComplete(Bundle values) {

String token = values.getString(“access_token”);

String expires_in = values.getString(“expires_in”);

editor = pre.edit();

editor.putString(“token”, token);

editor.putString(“expires_in”, expires_in);

editor.commit();

}

@Override

public void onWeiboException(WeiboException e) {

Toast.makeText(getApplicationContext(),

“Auth exception : ” + e.getMessage(), Toast.LENGTH_LONG)

.show();

}

@Override

public void onError(WeiboDialogError e) {

Toast.makeText(getApplicationContext(),

“Auth error : ” + e.getMessage(), Toast.LENGTH_LONG).show();

}

@Override

public void onCancel() {

Toast.makeText(getApplicationContext(), “Auth cancel : “,

Toast.LENGTH_LONG).show();

}

}

ShareAct.java关键代码

access_token = new Oauth2AccessToken(pre.getString(“token”, “”),

pre.getString(“expires_in”, “0”));

StatusesAPI api = new StatusesAPI(access_token);

/**

* upload(String content, String file, String lat, String lon, RequestListener listener)

* content为要分享的内容

* file为要分享图片路径

* lat和lng为经纬度,可根据自己的需要设置

* listener为监听器,用于监听发布结果

*/

api.upload(et1.getText().toString(), “mnt/sdcard/pic1.jpg”,”o”, “o”, this);

4)  最后,请不要忘记添加权限。

<uses-permission android:name=“android.permission.INTERNET” />

<uses-permission android:name=“android.permission.ACCESS_WIFI_STATE”/>

<uses-permission android:name=“android.permission.WRITE_APN_SETTINGS”/>

   <uses-permission android:name=“android.permission.ACCESS_NETWORK_STATE”/>

5)  运行,大功告成。

 

最后,附上源码;下载源码

25条评论
  • xinyin025

    2013年3月19日 上午9:37

    分享不成功,肯定是你代码或者设置的问题,仔细对照我给的代码

    1. zy

      2013年3月19日 上午9:43

      可能是我设置的问题。请问这个需要设置什么地方么。我原原本本的下载的你demo。然后运行发送就不行。跪求楼主帮忙

      1. zy

        2013年3月19日 上午10:04

        下载了,也是不行,授权可以,发布不可以

  • zy

    2013年3月19日 上午10:04

    下载了,也是不行,授权可以,发布不可以

    1. xinyin025

      2013年3月19日 上午10:43

      CONSUMER_KEY和REDIRECT_URL换成你的没?

      1. zy

        2013年3月19日 上午10:49

        换了

        1. zy

          2013年3月19日 上午10:50

          能告诉我你的QQ么

          1. xinyin025

            2013年3月19日 下午12:57

            换了还是不能发微博的话,肯定是你创建的应用后台设置有问题,我重新试了下,我的代码是可以发布微博的。

  • zy

    2013年3月19日 上午10:34

    问题在哪呢。劳教您。帮帮我吧。我也发布不了微博

  • Justin_Dong@163.com

    2013年4月7日 下午2:07

    分享倒是可以分享,不过是直接分享到文博的,能不能跳转到分享微博的界面呢?我想如果用户需要改更改自己的位置或者需要在添加几句话。

    1. xinyin025

      2013年4月8日 上午11:26

      有2种方式:1、调用新浪微博客户端,通过Intent调用系统分享,缺点是需要手机安装微博客户端;2、自己写Activity,针对微博api参数,仿照微博客户端的界面,缺点是比较麻烦。你可以针对性的选择一种方式实现。

  • aaa

    2013年4月28日 下午2:02

    楼主我这也分享不了啊,授权已经成功 了,该换的都换了啊

    1. xinyin025

      2013年4月30日 上午12:39

      仔细核对下你的APPKEY和后台的回调地址,有问题的话,大都出现在这里。

  • geniusPlayer

    2013年4月28日 下午2:19

    请问楼主,申请的CONSUMER_SECRETE 在哪用到的啊

    1. xinyin025

      2013年4月30日 上午12:40

      授权的时候用到的啊

      1. geniusPlayer

        2013年5月1日 下午8:54

        代码里面没有看到哪个地方有用到啊。

        1. xinyin025

          2013年5月1日 下午11:12

          那个srcret的确没用到,以前新浪oauth1.0的时候,需要的,新版的API里不再需要那个参数了。

          1. geniusPlayer

            2013年5月2日 上午11:07

            再请教楼主个问题,我怎样把sina给我们返回的登陆界面,加上我自己的底部和顶部呢?

          2. xinyin025

            2013年5月2日 下午12:11

            重写新浪的授权登录界面,暂时好像只能这样

          3. geniusPlayer

            2013年5月6日 下午2:16

            楼主 再向您请教一个问题,怎样获得登陆后的用户信息呢,写到这儿就不会写了 UsersAPI usersAPI = new UsersAPI(access_token);
            usersAPI.show(uid, this);
            show完了没有返回值啊

          4. xinyin025

            2013年5月7日 下午12:56

            usersAPI.show(uid,this)这个方法需要2个参数,uid是用户的id,在你获取授权的时候,新浪返回给你的,需要保存到本地,this为listner,用匿名内部类的方法,new一个,不要用this

          5. xinyin025

            2013年5月2日 下午12:11

            重写新浪的授权登录界面,暂时好像只能这样

  • 最励志官网

    2015年8月21日 下午3:43

    网站真不错 最励志网http://www.zuilizhi.net/?

  • 糗事百科

    2015年10月2日 上午9:54

    很好的网站,赞一个,加油!

发表评论

电子邮件地址不会被公开。 必填项已用*标注