当我尝试通过Facebook Graph API访问特定类型的对象时,为什么会出现此错误?
我有一个用户,user_2。他们的墙上有一个帖子,由user_1制作。当我尝试通过Facebook Graph API访问特定类型的对象时,为什么会出现此错误?
的网址是
https://www.facebook.com/user_1/posts/10150166228506188
我尝试使用Graph API来获取内容,这个请求:
https://graph.facebook.com/10150166228506188?access_token=ACCESSTOKENUSER_2
我得到这个错误:
{
"error": {
"type": "GraphMethodException",
"message": "Unsupported get request."
}
}
我使用的的access_token是好的,因为请求得到这样的状态的东西&图像精细工作:
https://graph.facebook.com/10150233707783933?access_token=ACCESSTOKENUSER_2
结果:
{
"id": "10150233707783933",
"from": {
"name": "American Steel",
"category": "Professional sports team",
"id": "203692078932"
},
"tags": {
"data": [
etc
错误似乎发生每当我试图让有项目这种URL的:
https://www.facebook.com/username/posts/item_id
的权限我的应用程序包括以下:
为什么会发生此错误?
我认为,为了直接通过图表api访问帖子,您必须将用户标识预先设置为您在facebook网址中看到的帖子标识。
所以在您的例子中,Facebook发布网址是:
https://www.facebook.com/user_1/posts/10150166228506188
,并尝试通过图形API来获取:
https://graph.facebook.com/10150166228506188?access_token=ACCESSTOKENUSER_2
,但你应该做的:
https://graph.facebook.com/{id of user_1}_10150166228506188?access_token=ACCESSTOKENUSER_2
我注意到所有帖子的ID都是这样形成的:
https://graph.facebook.com/me/posts?access_token= ...
这是否解决了您的问题?
您正在错误地访问该帖子的结束点。 Facebook上的每个对象都有唯一的ID。现在,恰巧它们通过将不同的ID附加在一起形成它(您的文章是一个例子,<user_id>_<post_id>
,并且对该文章的评论是<user_id>_<post_id>_<comment_id>
)。 Facebook没有公开承认这一点(并非他们真的必须,这很明显),这使得我依赖这种范式来访问图中的数据。这是因为Facebook可以在任何时候改变它,而且他们没有说过“是将这两个id附加在一起,并且可以从该图的这个部分获得一些有意义的东西”这一事实意味着他们不需要通知任何人这种变化,你可能会在有一天醒来,你的应用程序被完全破坏,你必须尽快找到解决方法,同时还要缩短时间。
图形api的工作原理是通过向API请求该唯一ID来访问Facebook上的对象。所以,你不需要去graph.facebook.com/<user_id>/posts/<post_id>
访问(也不能访问)你的帖子。相反,你去graph.facebook.com/<post_id>
。您从图上的/<user_id>/home
或/<user_id>/feed
端点获得post_id
。没有必要修改post_id
以便从图中获取关于它的信息。
希望帮助
是的,非常感谢! – ben 2011-05-08 23:19:36