1. 程式人生 > >關於新浪微博開放平臺第三方登入介面問題

關於新浪微博開放平臺第三方登入介面問題

 我在做新浪微博授權登入時,遇到這麼一個問題手工輸入新浪的賬號密碼,可以跳到我的回撥頁獲取token,新浪使用者資訊。但是用他們的二維碼掃碼登入,token就獲取不到了,這是為什麼呢?
通過閱讀新浪微博API介面文件,

文件中有這麼一句提示:

HTTP請求方式:POST

這句話太簡單了,你們想要人家POST什麼?讓人認為所有的引數都要作為POST傳送過去。可事實偏偏不是這樣的, OAuth的服務端只要看到本次提交的行為是POST就行, 至於POST集合裡面有沒有資料,有些什麼資料,它才不會管,所以,無論我們在POST裡面添加了什麼鍵|值、無論怎麼切換順序,都是錯誤的,因為它就沒有去讀取。

解決辦法:需要使用GET和POST的混合方式來提交

提交的地址應該是:

"https://api.weibo.com/oauth2/access_token?client_id={0}&client_secret={1}&grant_type=authorization_code&code={2}&redirect_uri={3}"

請求方式:POST

POST中的資料:空!

 0,1,2,3 對應你自己的引數值

如果用curl提交的網址,加上這一句即可

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);