新浪微博API使用
如今社交網(wǎng)絡(luò)異常活躍,接觸到的幾乎每個應(yīng)用都使用有一個功能:分享。分享到各種SNS上,
現(xiàn)今以新浪微博最火,其提供了良好的API接口等文檔供開發(fā)者使用,正好稱此有機(jī)會也來接觸一下,
說不定那天也能用得上。下面簡單記錄下初步使用過程中遇到的問題,以便對后來者有點(diǎn)作用。
一授權(quán)認(rèn)證
在使用新浪微博API前,還是很有必要先了解一下新浪微博授權(quán)認(rèn)證過程如何。
可以參考博文:http://whatandroid.blog.51cto.com/2172732/818665
二 APP KEY的申請
?????? 為了使用新浪微博開放平臺提供的API,你需要先注冊一個應(yīng)用,獲得一個專屬的App Key和App Secret。
Key跟Secret的使用方式跟其他一些協(xié)議中的公鑰私鑰的方案相類似,你可以使用你所熟悉的編程語言將key和secret結(jié)合,
為你發(fā)出的每個請求添加簽名,以此來向新浪微博開放平臺表明自己身份的合法性。
?????? 注冊方法:登錄新浪微博,點(diǎn)擊應(yīng)用 找到:
?
然后就可以創(chuàng)建應(yīng)用,填寫信息,不需要審核通過就可以得到App Key。
三下載SDK
?????? http://open.weibo.com/wiki/SDK
?????? 到微博開放平臺下載就可以了,我的是Android-SDK版本。weibo4android-1.2.1.zip。
里面已經(jīng)提供了很多example,可以參考。直接導(dǎo)入到Eclipse里面也是可以使用的。
需要配置一下版本,將Weibo類中的
public class Weibo {
?????? public static String CONSUMER_KEY = ""; //填入申請到的
?????? public static String CONSUMER_SECRET = "";//填入申請到的
}
然后就可以測試運(yùn)行。
四 API使用
?????? 其中提供了很多example,這樣我們就可以來熟悉微博API的使用。
在開發(fā)中我們可能需要將其集成到我們的APP中,這其中會有一些問題,下面看看我遇到的以及解決方法。在android4.0中:
1 ?E/AndroidRuntime(3595): java.lang.RuntimeException: Unable to start activity ComponentInf{com.weibo/com.weibo.ShareActivity}:android.os.NetworkOnMainThreadException.
?????? NetworkOnMainThreadException:在主線程UI線程中訪問網(wǎng)絡(luò) 異常。訪問網(wǎng)絡(luò)是一件耗時的操作,可能被禁止這樣使用。
?????? 解決方法:開辟新的線程中訪問網(wǎng)絡(luò)。(最好是這樣)
????????????? 或者使用android提供的類StrictMode自動進(jìn)行優(yōu)化。
????????????? 具體使用方法在在程序入口如onCreate中加入:
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()????
?????? ??????? .detectDiskReads()????
?????? ??????? .detectDiskWrites()????
?????? ??????? .detectNetwork()?
?????? ??????? .penaltyLog()????
?????? ??????? .build());
????????????? StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()????
?????? ??????? .detectLeakedSqlLiteObjects()????
?????? ??????? .detectLeakedClosableObjects()????
?????? ??????? .penaltyLog()????
?????? ??????? .penaltyDeath()????
?????? ??????? .build());
?
StrictMode用意具體可參考:http://www.cnblogs.com/zelos/archive/2011/02/27/1966403.html
?
2 ?E/AndroidRuntime(6195): java.lang.NoClassDefFoundError: org.apache.commons.httpclient.methods.PostMethod
?????? 分享圖片的時候會遇上,找不到此類定義,可是明明已經(jīng)導(dǎo)入相應(yīng)的SDK中提供的包了。
?????? 將包都放入到lib文件下,在Eclipse中右鍵點(diǎn)擊lib文件夾,選Bulid path –> Use as source folder。
?
3 ?weibo.getOAuthRequestToken(callback_url);中callback_url問題
?????? 設(shè)置不正確可能在登錄之后無法返回到相應(yīng)的Activity中;
?????? 這里的設(shè)置和AndroidManifest.xml中對activity的filter對應(yīng):
?????? <data
?????? android:host="ShareActivity"
?????? android:scheme="share" />
然后requestToken =weibo.getOAuthRequestToken("share://ShareActivity"); 要對應(yīng)。
才能返回到ShareActivity中;
scheme是工程名,必須得小寫。host是要返回的activity。
?
五發(fā)布微博例子
順便附上一個來自網(wǎng)絡(luò)上,能夠分享圖片的例子。我把它移到我這里工程上來的完整程序。
來自文章:http://www.pocketdigi.com/20110727/424.html
程序例子下載:
??????http://files.cnblogs.com/bastard/Share.rar
?
轉(zhuǎn)載于:https://www.cnblogs.com/bastard/archive/2012/06/26/2563922.html
總結(jié)
- 上一篇: 期货盈利计算公式
- 下一篇: lpr加108个基点是浮动利率吗 银行