一,背景
2017-06-26微博公告替換了一些接口,導致以前的:
statuses/repost 轉發一條微博
statuses/update 發布一條微博
statuses/upload 上傳圖片並發布一條微博
statuses/upload_url_text 發布一條微博同時指定上傳的圖片
statuses/destroy 刪除微博
無法使用。公司項目的微博分享也不能使用了。
全部替換成新的接口:
statuses/share 第三方分享鏈接到微博
更改接口后一直以下報錯:文本找不到域!
error:text not find domain! error_code:10017/2/statuses/share.json
弄了好幾天才發現問題出在授權key的地方。
二,解決問題
下載了最新的新浪微博Java的SDK
下載后,編輯Config.properties配置文件:
client_ID :填寫應用的appkey
client_SERCRET :填寫應用的app secret
redirect_URI : 填寫應用的回調地址 ,我這里使用的http://www.baidu.com
這三個參數都必須和應用上的一致,否則會出問題。
右鍵Run As ----> Java Application運行examples包下的weibo4j.examples.oauth2里的Oauth4Code.java,
會自動打開默認瀏覽器,進入應用授權界面。
授權成功后,將會跳轉到回調地址http://www.baidu.com
地址欄中顯示的是http://www.baidu.com/?code=的值復制出來。 填入控制台,回車就能獲得2.0的授權碼了。
accessToken就是我們想要的2.0的授權碼。
測試代碼:
注意:text中的文本中的域必須要加"http://"前綴,否則報錯:error:text not find domain! error_code:10017/2/statuses/share.json
右鍵Run As ----> Java Application運行SinaTest,出現下圖微博發送成功!
發送成功: