新浪微博API使用


  如今社交網絡異常活躍,接觸到的幾乎每個應用都使用有一個功能:分享。分享到各種SNS上,

現今以新浪微博最火,其提供了良好的API接口等文檔供開發者使用,正好稱此有機會也來接觸一下,

說不定那天也能用得上。下面簡單記錄下初步使用過程中遇到的問題,以便對后來者有點作用。

授權認證

  在使用新浪微博API前,還是很有必要先了解一下新浪微博授權認證過程如何。

可以參考博文:http://whatandroid.blog.51cto.com/2172732/818665

APP KEY的申請

       為了使用新浪微博開放平台提供的API,你需要先注冊一個應用,獲得一個專屬的App Key和App Secret。

Key跟Secret的使用方式跟其他一些協議中的公鑰私鑰的方案相類似,你可以使用你所熟悉的編程語言將key和secret結合,

為你發出的每個請求添加簽名,以此來向新浪微博開放平台表明自己身份的合法性。

       注冊方法:登錄新浪微博,點擊應用 找到:

   

    

然后就可以創建應用,填寫信息,不需要審核通過就可以得到App Key。

下載SDK

       http://open.weibo.com/wiki/SDK

       到微博開放平台下載就可以了,我的是Android-SDK版本。weibo4android-1.2.1.zip。

里面已經提供了很多example,可以參考。直接導入到Eclipse里面也是可以使用的。

需要配置一下版本,將Weibo類中的

public class Weibo {

       public static String CONSUMER_KEY = ""; //填入申請到的

       public static String CONSUMER_SECRET = "";//填入申請到的

}

然后就可以測試運行。

API使用

       其中提供了很多example,這樣我們就可以來熟悉微博API的使用。

在開發中我們可能需要將其集成到我們的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線程中訪問網絡 異常。訪問網絡是一件耗時的操作,可能被禁止這樣使用。

       解決方法:開辟新的線程中訪問網絡。(最好是這樣

              或者使用android提供的類StrictMode自動進行優化。

              具體使用方法在在程序入口如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

       分享圖片的時候會遇上,找不到此類定義,可是明明已經導入相應的SDK中提供的包了。

       將包都放入到lib文件下,在Eclipse中右鍵點擊lib文件夾,選Bulid path –> Use as source folder。

 

3  weibo.getOAuthRequestToken(callback_url);中callback_url問題

       設置不正確可能在登錄之后無法返回到相應的Activity中;

       這里的設置和AndroidManifest.xml中對activity的filter對應:

       <data

       android:host="ShareActivity"

       android:scheme="share" />

然后requestToken =weibo.getOAuthRequestToken("share://ShareActivity"); 要對應。

才能返回到ShareActivity中;

scheme是工程名,必須得小寫。host是要返回的activity。

 

發布微博例子

  順便附上一個來自網絡上,能夠分享圖片的例子。我把它移到我這里工程上來的完整程序。

  來自文章:http://www.pocketdigi.com/20110727/424.html

  程序例子下載:

      http://files.cnblogs.com/bastard/Share.rar

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM