新浪微博API使用

來源:互聯網
上載者:User

  如今社交網路異常活躍,接觸到的幾乎每個應用都使用有一個功能:分享。分享到各種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

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.