1. 程式人生 > >Java呼叫第三方微博登入例項

Java呼叫第三方微博登入例項

Java呼叫第三方微博登入例項

最近在維護一個類似訊息推送矩陣的專案,裡面用到了微博第三方登入介面的呼叫,在除錯的過程中遇到不少障礙,順手把這些坑記錄下來,作為大家的前車之鑑。

呼叫新浪微博登入

1.建立應用

開啟微博開放平臺 http://open.weibo.com 登入微博賬號 >> 我的應用 >> 開發者資訊 >> 現在就去完善 在這裡插入圖片描述
建立應用
在這裡插入圖片描述
應用地址 是必須填寫的,而且必須是域名的格式,還有 App KeyApp Secret 是之後要用的,很重要。
圖片如果測試的話,隨便上傳就好了,符合畫素和檔案大小即可。
按要求填寫完之後,在高階資訊裡填寫回調地址,就是你應用裡的實際授權地址,用於獲取access_token。
在這裡插入圖片描述


提交稽核,一天之後就可等到提交結果,提交失敗或者沒有提交,也是可以使用的,不影響測試。
在這裡插入圖片描述
需要下載新浪微博API,地址 http://open.weibo.com/wiki/SDK ,選擇java SDK
在這裡插入圖片描述
閱讀readme.txt ,根據裡面的說明我們知道要修改三個值。
在這裡插入圖片描述
修改Config.properties裡的client_ID,client_SERCRET,redirect_URI
這三個引數都必須和應用上的一致,否則會出問題。
在這裡插入圖片描述
執行examples包下的weibo4j.examples.oauth2裡的Oauth4Code.java
開啟如下介面
在這裡插入圖片描述
登入後,會自動跳到你的回撥地址,位址列中顯示的是http://www.test.com/CallBack/sina?code=
在這裡插入圖片描述

將code填入控制檯,回車就能獲得2.0的授權碼access_token了。
獲取授權碼之後,可以根據新浪開放平臺的API文件呼叫介面了。
http://open.weibo.com/wiki/微博API
在這裡插入圖片描述
用到的介面點進去看,裡面寫的很官方很準確。

·需要注意的是,新浪微博的釋出微博介面進行了更新,也就是說這方面的老介面已經不能使用了。
2017-06-26微博公告替換了一些介面,導致以前的:

statuses/repost 轉發一條微博

statuses/update 釋出一條微博

statuses/upload 上傳圖片併發布一條微博

statuses/upload_url_text 釋出一條微博同時指定上傳的圖片

statuses/destroy 刪除微博

無法使用。公司專案的微博分享也不能使用了。

全部替換成新的介面:

statuses/share 第三方分享連結到微博

需要修改一下你下載的新浪API,在方法名 、json、修改一下即可。

public Status updateStatus(String status) throws WeiboException {
		return new Status(client.post(WeiboConfig.getValue("baseURL")
				+ "statuses/update.json",
				new PostParameter[] { new PostParameter("status", status) },
				access_token));
	}

	/**
	 * 第三方分享微博
	 * @param status
	 * @return
	 * @throws WeiboException
	 */
	public Status share(String status) throws WeiboException {
		return new Status(client.post(WeiboConfig.getValue("baseURL")
				+ "statuses/share.json",
				new PostParameter[] { new PostParameter("status", status) },
				access_token));
	}
如果專案裡用到測試賬號的話,必須在你的開發者應用裡新增微博使用者,不然會發生有code但無法獲取access_token的靈異事件。

在這裡插入圖片描述