2014-09-02 951 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.将显示在屏幕上。而实际访问令牌将在地址栏中找到。