我希望我的应用程序能够发布状态更新到特定的页面。我已经设置了一个应用程序并检索了它的应用程序ID,并且我正在遵循Facebook身份验证文档here底部的“Page Login”部分。
第一阶段(用户授予应用程序manage_page
权限)似乎工作得很好。我被重定向到一个URL,如下所示:
http://myapp.com/#access_token=ACCESS_TOKEN&expires_in=6483
然后,文档会提示您应该访问以下内容:
https://graph.facebook.com/me/accounts?access_token=TOKEN_FROM_ABOVE
将TOKEN_FROM_ABOVE
替换为前一个请求返回的页面,这将返回“用户管理的所有页面的列表,包括每个页面的页面特定访问令牌”。
然而,它不是。我得到的只是以下JSON响应:
{
"error": {
"message": "An unexpected error has occurred. Please retry your request later.",
"type": "OAuthException"
}
}
我做错了什么?在创建应用程序时,我会不会设置不正确?该错误消息不太有用,因此如果有任何帮助,我们将不胜感激。
发布于 2011-12-07 10:07:08
今天早上才突然开始工作--不知道为什么。
发布于 2011-12-07 18:33:18
我想我可以对此做更多的解释。
当我请求页面特定的访问令牌时,我经常得到这个返回;这个调用的失败似乎与访问令牌所针对的帐户所管理的页面的数量成比例,所以如果你管理100个页面,你将比如果你有1个页面失败的频率更高,如果你有5000个页面,失败的次数将比没有发生的次数更多。
这表明失败与响应大小有关,因为对于较大的Page集合,返回的JSON可能非常长。
解决这个问题的方法很简单。而不是请求所有页面的
http://graph.facebook.com/me/accounts?access_token={admin access token}
使用
http://graph.facebook.com/{page id}?fields=access_token&access_token={admin access token}
这将只返回该页面的访问令牌。因为响应很小,所以您应该不会经常遇到Facebook服务器端错误。自从我换了,我想我从来没有经历过失败,而且我经常打电话。
发布于 2011-12-02 08:33:00
https://stackoverflow.com/questions/8353119
复制