2012.7.4注:好多人反映按照日志中的方法做不能出結果,不知道是不是新浪微博的API變了,貌似日志中提到的方法和解決辦法都不行了……這是我寒假時寫的,可能有些過時了。建議看一下官方文檔和開發者論壇,可能會有些幫助。
實驗室的活兒要用新浪微博API,所以學習了一下,簡單記錄一下吧。
首先,你要有一個新浪微博賬號。
然后,登陸http://wwv.renren.com/xn.do?ss=10791&rt=1,點擊創建應用(如下圖)
類型、名稱等等各種信息隨便填,創建好了之后,點擊管理應用(如上圖),就會出現你剛剛創建的應用,點擊應用詳情。
然后點擊上圖中的應用信息,會看到App Key和App Secret,這兩個很重要,記下來。
接下來,你需要下載sdk,http://wwv.renren.com/xn.do?ss=10791&rt=1,選擇你熟悉的編程語言吧,我選擇了java版的,接下來的講解也以java sdk為例。
最新的java sdk下載地址是:http://wwv.renren.com/xn.do?ss=10791&rt=1,它在google code上的官方首頁是http://wwv.renren.com/xn.do?ss=10791&rt=1。當然,你還需要知道的是新浪微博API的官方文檔的地址:http://wwv.renren.com/xn.do?ss=10791&rt=1。
好了,下面我們來看看java sdk。
首先,解包,是一個java的工程,在eclipse中導入該工程,展開的工程如下:
src中是sdk的源碼,example里是使用sdk的示例代碼。
下面來配置該sdk,就是要把你的App Key和App Secret導入到工程中,具體的方法可以看http://wwv.renren.com/xn.do?ss=10791&rt=1,也就是:
在Config.properties里
client_ID :appkey(創建應用獲取到的appkey)
client_SERCRET :app_secret(創建應用獲取到的appsecret)
redirect_URI : 回調地址(OAuth2的回調地址)(可以不填,建議先不填吧)
同時在WeiboConfig里更改下
props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("config.properties"));
相信你能找到這兩個文件在哪里。
然后調用example里:OAuth4Code.java,運行,會彈出認證界面:
填寫一個正確的新浪微博賬號后,會跳轉到下面的認證界面(未填回調地址,所以顯示連接失敗):
我們並不需要這個頁面,而是需要該頁面的地址,地址的最后是code=XXXXX,把XXXXX填到eclipse的控制台下:
回車,在最下面會得到access_token和uid,記下來,這兩個參數很有用,一般來說需要用這兩個參數來從服務器上抓取數據:
接下來,就可以看example了,隨便打開一個示例代碼,比如以user/show接口為例:
publicclassShowUser{
/**
* @param args
*/
public static void main(String[] args){
String access_token = args[0];
Weibo weibo =newWeibo();
weibo.setToken(access_token);
String uid = args[1];
Users um =newUsers();
try{
User user = um.showUserById(uid);
Log.logInfo(user.toString());
}catch(WeiboException e){
e.printStackTrace();
}
}
}
//weibo.setToken為auth4code獲取到的oauth2的accesstoken。
//uid可以填剛才得到的uid(就是授權用戶的uid),也可以填任何一個有效的uid(天哪,就是說理論上你能獲取任何一個人在新浪微博上填寫的個人信息!)。
可以看到,實際上獲取用戶信息的最主要一句話是
User user = um.showUserById(uid);
就是調用showUserById這個函數,簡單吧,其他的比如獲取用戶的粉絲列表神馬的大同小異。
就介紹到這里吧,現在打算寫一個android聯系人的小程序,給有強迫症的同學們用,主要作用是修復聯系人信息的格式,你的手機里的聯系人是不是混亂不堪呢?試試我的小程序吧,若有愛,請期待。