我刚学习restfb
。我在FB网站上注册了一个应用程序并获得了应用程序ID和密钥。但是,根据this tutorial,我应该有一个访问令牌来初始化DefaultFacebookClient。我尝试按照那里的说明进行操作,但没有充分说明如何从应用程序ID和密钥中获取访问令牌。
Request https://graph.facebook.com/oauth/authorize?client_id=MY_API_KEY&redirect_uri=http://www.facebook.com/connect/login_success.html
Facebook will redirect you to http://www.facebook.com/connect/login_success.html?code=MY_VERIFICATION_CODE
Request https://graph.facebook.com/oauth/access_token?client_id=MY_API_KEY& redirect_uri=http://www.facebook.com/connect/login_success.html&client_secret=MY_APP_SECRET&code=MY_VERIFICATION_CODE
Facebook will respond with access_token=MY_ACCESS_TOKEN
我确实做到了,但每次我都
{
"error": {
"message": "Error validating verification code. Please make sure your redirect_uri is identical to the one you used in the OAuth dialog request",
"type": "OAuthException",
"code": 100
}
}
知道我应该做些什么来获取访问令牌并开始使用API?
答案 0 :(得分:3)
看起来插件作者假设您将使用Login Dialog或JavaScript SDK对用户进行身份验证。
这两种方法都会返回您可以使用的用户访问令牌。您需要App_ID和Secret来初始化这些。大多数Facebook操作都需要用户访问令牌。
如果您只是为了阅读公共数据而进行API调用,那么您可以使用应用程序访问令牌。为此,您可以使用RestFB的DefaultFacebookClient().obtainAppAccessToken() method。
答案 1 :(得分:1)
我遇到了同样的问题。
向redirect_uri参数添加尾部斜杠为我解决了问题。
此外,请确保在发出请求时使用的是自己应用的URI,而不是facebook URI。
例如:
http://www.yoursite.com
对我不起作用
http://www.yoursite.com/
确实
答案 2 :(得分:1)
我不确定这是不是你想要的,但无论如何:
要获取与应用相关联的用户的访问令牌,您可以使用/ accounts'edge'(请参阅here)。
另外,this site about access tokens表示你可以像这样调用Graph API: https://graph.facebook.com/endpoint?access_token=app_id|app_secret
现在,结合它,获取访问令牌(JSON格式以及其他一些东西): https://graph.facebook.com/ {您的应用ID在这里} / accounts?access_token = {再次,您的应用ID在这里} | {您的app secret here}
请替换上面网址中的字段,并从中删除所有{和}。