Java调用新浪微博API【转】


弄了大半天,历经了种种坎坷之后,终于成功使用新浪api java SDK成功了,说说遇到的问题吧。
1.先在新浪微博应用中注册一个自己的应用,目的是为了获取App Key和Secret Key。简单注册完之后,到我的http://open.weibo.com下“我的应用”里面“应用信息”->"高级信息"填写一个授权回调页。
2.下载新浪api 的java SDK 地址:http://open.weibo.com/wiki/SDK,然后导入eclipse中,我在这里遇到一个问题,eclipse不能识别中文,解决办法:eclipse->首选项->常规->工作空间(这里我写的都是汉语,对应的英文自己查)->右边的文本文件编码选择其他,选UTF-8,这样eclipse就可以识别中文了。
3.配置下载下来的java SDK,主要改一个文件,即src下面的config.properties:
client_ID :appkey 创建应用获取到的appkey (App Key)
client_SERCRET :app_secret 创建应用获取到的appsecret(Secret Key)
redirect_URI : 回调地址 OAuth2的回调地址(就是在高级信息里面填写的授权回调页)
4.在调用/使用所有的api之前都需要进行Oath2验证。(最重要的一步)
调用example下面OAuth4Code.java,会弹出下面页面

 


填写一个正确的新浪微博账号后,会跳转到下面的认证界面

 


我们并不需要这个页面,而是需要该页面的地址,地址的最后是code=XXXXX,把XXXXX填到eclipse的控制台下:(之前我用猎豹浏览器和IE浏览器在进行图片2步骤时,都没有code,但是使用了Chrome之后就成功了。)

 


回车,在最下面会得到access_token和uid,记下来,这两个参数很有用,一般来说需要用这两个参数来从服务器上抓取数据:

 


任务结束,主要是获得了AccessToken,以后调用api时都要用到。

5. 调用API
经过Oath2验证以后就可以随意调用开放平台提供的各种API。
比如,我们调用获取粉丝,调用example.friendships.GetFlowers.java.
package weibo4j.examples.friendships;

import weibo4j.Friendships;
import weibo4j.Weibo;
import weibo4j.examples.oauth2.Log;
import weibo4j.model.User;
import weibo4j.model.UserWapper;
import weibo4j.model.WeiboException;

public class GetFollowers {

        public static void main(String[] args) {
                String access_token = "2.00RkFknBuc4hPD05d15a59e6Yi3WRB";
                Weibo weibo = new Weibo();
                weibo.setToken(access_token);
                Friendships fm = new Friendships();
                String screen_name ="任意用户的名字";
                try {
                        UserWapper users = fm.getFollowersByName(screen_name);
                        for(User u : users.getUsers()){
                                Log.logInfo(u.toString());
                        }
                        System.out.println(users.getNextCursor());
                        System.out.println(users.getPreviousCursor());
                        System.out.println(users.getTotalNumber());
                } catch (WeiboException e) {
                        e.printStackTrace();
                }
        }
}
运行之前设置access token 和用户名字

 
转自:http://www.douban.com/note/226832616/

posted on 2016-02-23 16:55  1130136248  阅读(325)  评论(0编辑  收藏  举报

导航