这让我完全疯了。我已经设置了一个FB应用并通过访问https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=CLIENT_ID&client_secret=CLIENT_SECRET来检索访问令牌。
现在,我想从此网址抓取(公开提供的)Feed:https://graph.facebook.com/PAGE_OR_USER_ID/feed?access_token=ACCESS_TOKEN
当我使用自己的用户ID尝试它时,或者当我尝试另一个随机页面时它工作正常但是当我输入PAGE_ID时它不起作用我需要它来使用它。
以下是一些例子:
这很好(我的朋友的Facebook页面): https://graph.facebook.com/tatchit/feed?access_token=213451182120494|JgAwuCE74lh51t1pKMuRM2mz3GU&limit=10&offset=0
这也很好(我自己的Facebook ID): https://graph.facebook.com/al.dev.7/feed?access_token=213451182120494|JgAwuCE74lh51t1pKMuRM2mz3GU&limit=10&offset=0
这不起作用(客户的Facebook页面): https://graph.facebook.com/142616539131188/feed?access_token=213451182120494|JgAwuCE74lh51t1pKMuRM2mz3GU&limit=10&offset=0
我没有收到任何错误,但结果是空的。
如果我尝试使用Graph API Explorer,它也可以正常工作: https://developers.facebook.com/tools/explorer/?method=GET&path=142616539131188%2Ffeed
但是如果我输入自己的访问令牌,那就不行了。根据我的理解,您在API Explorer中获得的访问令牌是临时的,因此我不想使用它。
这怎么可能?
另外。我很难理解整个访问令牌,客户端ID,app-id-business现在已经很久了 - 是否有一个很好的教程解释所有这些东西?我从未有过这项工作而没有任何问题。
谢谢
答案 0 :(得分:1)
您正在使用App Access令牌而不是用户访问令牌。您正在查看的某些页面可能设置了国家/地区或年龄限制,因此使用应用令牌无效。
请参阅:http://developers.facebook.com/docs/concepts/login/access-tokens-and-types/
答案 1 :(得分:1)
您应该使用用户访问令牌进行上述所有查询。当您想要执行类似检查应用程序洞察的操作时,可以使用App Access令牌。
当页面有年龄限制或类似情况时,app令牌无法通过,但由于用户已经是该页面的成员,因此您可以使用用户访问令牌来获取数据。
添加:从文档中引用,
Note that the **app access token** is for publishing purposes permitted by the publish_actions and publish_stream permissions. You will be **unable to retrieve information** about the status update post with the given ID using the app access token. Instead, you should use a **user access token** for such purposes.
应用访问令牌的其他功能 可以使用App Access Token从Facebook检索有限的一组信息。
Basic Profile Info of a User (ID, Name, Username, Gender)
A User’s Friends and their IDs
Permissions granted by the User to your App
阅读:https://developers.facebook.com/docs/opengraph/using-app-tokens/
因此,您应该使用user_access令牌查询您要查找的所有信息,而不是使用app access_token。