android分享到新浪微博,認證+發送微博,

來源:互聯網
上載者:User

分享到新浪微博,折騰了大半個月,現在終於弄出來了,心裡的那個爽呀,太痛快了,哈哈!!

廢話少說,首先是認證,

1.進入新浪微博提供的開放平台http://open.weibo.com/ 註冊新浪帳號。

2.點擊’我是開發人員‘,建立一個應用,得到CONSUMER_KEY和CONSUMER_SECRET,儲存這兩個值。

3.找到相關的API介面文檔,下載android版的SDK weibo4android-1.2.0.zip 。

4.解壓後倒入到eclipse中。

------下面是關鍵步驟

5.在自己的項目中建立一個lib檔案夾,分別添加weiboandroid項目中的這三個包commons-codec.jar,commons-httpclient-3.1.jar,commons-logging-1.1.jar 。

6.分別添加這四個包的自己的項目 中,weibo4android,weibo4android.http,weibo4android.org.json,weibo4android.util。 //此時如果引入weibo4android-1.2.0.jar這個包是會報錯,提示什麼版本問題,查詢提供的都是從1.6版本複製項目到2.2版本的 方案。 本人覺得這個包跟現在倒入的四個包造成命名空間的衝突造成的。

7.參考examples-weibo4android.androidexamples下的三個檔案。OAuthConstant.java直接 拷貝到項目中,AndroidExample.java認證所需要的相關配置,OAuthActivity.java認證成功後得到 AccessToken的key和Secret,可以複製其代碼。 //詳細代碼設定後面會給出,不要著急………………

8.AndroidExample和OAuthActivity代碼所對應的java檔案都需要在AndroidManifest.xml中註冊。 註冊方式不說,基礎入門必修課。

注意對OAuthActivity對應檔案參數的設定:

<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="cn.edu.cou.mobile" android:host="ShareSinaSendActivity" /> //
</intent-filter>

9.最重要的一點,在複製到項目中的weibo4android包下找到Weibo.java檔案,修改CONSUMER_KEY和CONSUMER_SECRET的值,與第二點是提到的值對應。

10.代碼部分:

AndroidExample對應檔案中必須有:

System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);
System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET);

然後:

Weibo weibo = OAuthConstant.getInstance().getWeibo();
RequestToken requestToken;
try {
requestToken =weibo.getOAuthRequestToken("weibo4android://OAuthActivity"); // 分別取第八點提到的scheme host ---host必須為在新浪成功後所需要調回的頁面名稱
Uri uri = Uri.parse(requestToken.getAuthenticationURL()+ "&from=xweibo"); // 即OAuthActivity的對應檔案。 scheme建議為項目名稱或是項目總的命名空間
OAuthConstant.getInstance().setRequestToken(requestToken);
startActivity(new Intent(Intent.ACTION_VIEW, uri));
} catch (WeiboException e) {
e.printStackTrace();

}

OAuthActivity對應檔案:

Uri uri=this.getIntent().getData();
try {
RequestToken requestToken = OAuthConstant.getInstance()
.getRequestToken();
accessToken = requestToken.getAccessToken(uri
.getQueryParameter("oauth_verifier"));
OAuthConstant.getInstance().setAccessToken(accessToken);
textView.setText("得到AccessToken的key和Secret,可以使用這兩個參數進行授權登入了.\n Access token:\n"
+ accessToken.getToken()
+ "\n Access token secret:\n"
+ accessToken.getTokenSecret());
} catch (WeiboException e) {
e.printStackTrace();
}

/////----------------以下為我在OAuthActivity對應檔案中Button的OnClick事件中處理髮表一條新微博的功能。

Weibo weibo = new Weibo();
Status status = null;
try {
weibo.setToken(accessToken.getToken(),accessToken.getTokenSecret());
status = weibo.updateStatus("測試android上發新浪微博訊息!!!!"); //關鍵是這裡,能否成功調用updateStatus發表微博,有興趣的可以仔細研究一下。
} catch (WeiboException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(status.getId() + " : " + status.getText() + " "
+ status.getCreatedAt());

//如果程式能執行到這裡,證明已經發表成功,下面是執行成功後跳轉到另外一個頁面。

Intent intent = new Intent();
intent.setClass(ShareSinaSendActivity.this, ShareListActivity.class);
ShareSinaSendActivity.this.startActivity(intent);

到這裡,功能基本上就完了,如果想要其他的功能,只需要根據SDK上提供的那個Demo進行對應的操作即可。

總結:分享到新浪微博,調用新浪的API,除了登陸介面是新浪提供外,其餘貌似都需要些xml布局檔案。 本人乃初學,以上為記錄這次成功後的分享,希望也能幫到很多需要做新浪微博分享功能的人。 對於android的知識點,每個人提供多提供一點心得,既是對自己的一種提升,同時又能幫到更多的人,真的很好!!!!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.