我是靠谱客的博主 能干日记本,这篇文章主要介绍Android上新浪微博SDK的使用方法介绍,现在分享给大家,希望可以做个参考。

作者:朱凌飞


本文介绍了如何在Android程序中使用新浪微博提供的AndroidSDK,具体新浪API查询请到http://open.weibo.com/查看。


微博Android平台SDK为第三方微博应用提供了文档易用的微博API调用服务,使第三方客户端无需了解复杂的验证,API调用过程。并可以实现分享到微博的功能,可以分享文字,或者多媒体信息到内置的分享页面,并发送到微博。


首先我们需要在新浪微博开放平台上进行注册,之后需要创建一个新的应用,并且需要记下应用的APP key,App Secret Key以及设置应用的回调页以便我们在程序中进行使用。此外,还需要在应用的高级信息里添加测试用户的uid,切记切记,否则会出现登陆不成功等怪现象。


接着我们下载微博提供的Android上的SDK,下载地址在这里http://open.weibo.com/wiki/SDK,选择AndroidSDK进行下载即可。

使用方法:


首先将下载的sdk进行解压,并将其导入到eclipse中,接着在你需要使用sdk的android工程中点击右键,属性,设置library属性,选中刚才导入的weibosdk即可。如图所示





然后在你的工程的Manifest文件中,加入以下权限:


复制代码
1
2
3
4
5
<uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.WRITE_APN_SETTINGS"></uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>


这样我们就能使用weibosdk了


建立工程以后如何在代码中使用weiboAPI呢,下面就由我来为大家介绍使用方法:

首先在你需要使用微博的Activity中加入以下代码:


Weibo weibo = Weibo.getInstance();

weibo.setupConsumerConfig(Constants.CONSUMER_KEY,Constants.CONSUMER_SECRET);

weibo.setRedirectUrl("Your URLhere");

    weibo.authorize(this,

              listener);

注意代码中的Constants.CONSUMER_KEY,Constants.CONSUMER_SECRET即是文章开头介绍的在微博上创建的应用里的两个key,setRedirectUrl中的内容即是在应用中设置的回调页。


Listener则是在进行登陆授权后对执行结果进行处理的Litener,代码如下


复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
public class AuthDialogListener implements WeiboDialogListener { private Activity context; private String content; private String file; private float lat; private float lon; private static boolean isOver=true; public AuthDialogListener(Activity context,String content,String file,float lat,float lon){ this.context= context; this.content=content; this.file=file; this.lat=lat; this.lon=lon; } @Override public void onComplete(Bundle values) { String token = values.getString("access_token"); String expires_in = values.getString("expires_in"); String oauth_verifier = values.getString("oauth_verifier"); AccessToken accessToken = new AccessToken(token, Constants.CONSUMER_SECRET); accessToken.setExpiresIn(expires_in); accessToken.setVerifier(oauth_verifier); Weibo.getInstance().setAccessToken(accessToken); try { if (isOver) { isOver=false; share2weibo(this.content,null,listener,lat,lon); } } catch (WeiboException e) { e.printStackTrace(); } } @Override public void onError(DialogError e) { Toast.makeText(context.getApplicationContext(), "Auth error : " + e.getMessage(), Toast.LENGTH_LONG).show(); } @Override public void onCancel() { Toast.makeText(context.getApplicationContext(), "Auth cancel", Toast.LENGTH_LONG).show(); } @Override public void onWeiboException(WeiboException e) { Toast.makeText(context.getApplicationContext(), "Auth exception : " + e.getMessage(), Toast.LENGTH_LONG) .show(); } private void share2weibo(String content,String file,RequestListener listener,float lat , float lon) throws WeiboException { Weibo weibo = Weibo.getInstance(); WeiboParameters params= new WeiboParameters(); params.add("access_token", weibo.getAccessToken().getToken()); params.add("status", content); params.add("lat", String.valueOf(lat)); params.add("long", String.valueOf(lon)); String url = Weibo.SERVER + "statuses/update.json"; if (file!=null&&!file.equalsIgnoreCase("")) { params.add("pic", file); url = Weibo.SERVER + "statuses/upload.json"; } AsyncWeiboRunner runner = new AsyncWeiboRunner(weibo); runner.request(this.context, url, params,Utility.HTTPMETHOD_POST,listener); } RequestListener listener= new RequestListener() { @Override public void onIOException(IOException e) { isOver=true; Toast.makeText(context, "RequestListener "+e.getMessage(), Toast.LENGTH_LONG).show(); } @Override public void onError(WeiboException e) { isOver=true; Toast.makeText(context, "RequestListener "+e.getMessage(), Toast.LENGTH_LONG).show(); } @Override public void onComplete(String response) { isOver=true; Toast.makeText(context, "Success!", Toast.LENGTH_LONG).show(); } }; }


需要完成WeiboDialogListener接口中的方法,分别是onComplete,OnError,

OnCancel,OnWeiboException。其中Oncomplete是在微博登陆授权成功后会执行的方法,在这个方法中,你可以调用你想要的功能如发表微博,转发,评论等。使用的代码可参看以下代码:


复制代码
1
2
3
4
5
6
7
8
9
10
Weibo weibo = Weibo.getInstance(); WeiboParameters params= new WeiboParameters(); params.add("access_token", weibo.getAccessToken().getToken()); params.add("status", content); params.add("lat", String.valueOf(lat)); params.add("long", String.valueOf(lon)); String url = Weibo.SERVER + "statuses/update.json"; AsyncWeiboRunner runner = new AsyncWeiboRunner(weibo); runner.request(this.context,url,params,Utility.HTTPMETHOD_POST,listener);


其中params是调用weibo api中需要的具体参数,可根据需要进行添加

AsyncWeiboRunner 是用来执行具体请求的类,根据你设定的参数发起请求。注意这里又有一个listerner,而这个listener是对发起请求后的结果进行处理的回调类,

RequestListener listener= new  RequestListener()

    需要复写的方法有OnIOException,onError,onComplete,这样可以清楚地对各种情况进行处理。

    这样在程序中就可以使用新浪微博 android sdk了。



最后

以上就是能干日记本最近收集整理的关于Android上新浪微博SDK的使用方法介绍的全部内容,更多相关Android上新浪微博SDK内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(87)

评论列表共有 0 条评论

立即
投稿
返回
顶部