分享到新浪微博,折騰了大半個月,如今終於弄出來了,內心的那個爽呀,太痛快了,哈哈!!html
廢話少說,首先是認證,java
1.進入新浪微博提供的開放平臺 註冊新浪帳號。android
2.點擊’我是開發者‘,建立一個應用,獲得CONSUMER_KEY和CONSUMER_SECRET,保存這兩個值。json
3.找到相關的API接口文檔,下載android版的SDK weibo4android-1.2.0.zip 。eclipse
4.解壓後倒入到eclipse中。ide
------下面是關鍵步驟佈局
5.在本身的項目中建立一個lib文件夾,分別添加weiboandroid項目中的這三個包commons-codec.jar,commons-httpclient-3.1.jar,commons-logging-1.1.jar 。測試
注意:這裏千萬不要添加weibo4android-1.2.0.jar這個包。this
而後再將這三個包引用到到項目中。 //這裏這樣作的好處是當你項目完成後拷貝的別處的時候,不會形成.jar包的丟失……spa
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" /> //這裏scheme host 在AndroidExample對應文件跳轉時會用到 </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的知識點,每一個人提供多提供一點心得,既是對本身的一種提高,同時又能幫到更多的人,真的很好!!!!