我开始创建一个小应用程序,以便为更大的项目获取与Facebook ID相关联的名称。我刚开始使用Facebook API,它给了我奇怪的结果。大多数时候,一切都很好。我使用这段代码(我使用的是Python,但这并不重要,因为它是导致问题的Facebook API):
def downloadString(url, params):
cookie = {}
data = requests.get(url,cookies=cookie,params=params)
return data.text
url = "https://graph.facebook.com/v2.6/"
id = "afriendidhere"
dl = basics.downloadString(url + id, {"access_token":accesstoken})
res = json.loads(dl)
正如我所说,大多数时候,它运作得很好,给我一个给定人的名字。但是,对于我朋友列表中的两个人,我收到以下消息:
{
"error": {
"message": "Unsupported get request. Object with ID 'theid' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api",
"type": "GraphMethodException",
"code": 100,
"fbtrace_id": "FTfrh78XjW/"
}
}
我不明白为什么。拥有此ID的人确实存在,因为我可以访问该网页http://facebook.com/messages/theid,并且它会向我提供此用户的对话历史记录。它总是和导致错误的人一样,其他人都很完美。
有谁知道为什么?
答案 0 :(得分:3)
您只能从授权您的应用的用户那里获取数据。授权他们,使用/me
端点获取他们的App Scoped ID和名称。更多信息:https://developers.facebook.com/docs/graph-api/reference/v2.6/user
答案 1 :(得分:1)
我的解决方案是在设置中发布页面
页面可见性 - >发布
保存更改
答案 2 :(得分:0)
尝试从页面设置中删除任何可见性限制(例如国家/地区限制等)