2014-09-02 84 views
4

我試圖通過their OAuth2 API從vKontakte(俄羅斯社交網絡)獲取訪問令牌。 這是我打這個電話:如何通過OAuth2從vKontakte(VK)獲取訪問令牌?

https://oauth.vk.com/authorize?client_id=12345&scope=wall,offline&redirect_uri=https://www.example.com/oauth/vk.php&display=page&v=5.24&response_type=token 

我收到一個訪問令牌,但如果我嘗試發佈它的消息,我收到此錯誤:

//error: Permission to perform this action is denied for non-standalone applications: you should request token using blank.html page. 

我的應用程序是一個獨立的應用程序 - 爲什麼我收到錯誤?

回答

3

我看到你的「client_id」是'12345' - 是假的ID還是真的?你有沒有從VK獲得有效的client_id?

看來,你應該通過「blank.html」請求令牌:

https://oauth.vk.com/authorize?client_id=<app_id>&scope=...,wall,...&redirect_uri=https://oauth.vk.com/blank.html&response_type=token 

(而不是vk.php,在你的例子)

+0

這是假的,我從VK收到一個有效的。 – Uli 2014-09-06 20:50:23

+0

我沒有得到令牌,但是VK發出警告:'請不要將地址欄中的數據複製到第三方網站。因此,您可能無法訪問您的帳戶.' – Uli 2014-09-07 09:37:43

+0

也許它在VK方面是硬編碼的,所以您應該重定向到您的應用程序中的blank.html。例如:... redirect_uri = https://www.example.com/oauth/blank.html ...而不是vk.php。 – OhadR 2014-09-07 11:24:28

2

您遵循的步驟是正確的。

警告信息Please do not copy the data from the address bar to third-party sites. So you can lose access to your account.將顯示在屏幕上。而實際訪問令牌將在地址欄中找到。