【问题标题】:Graph API tells me an object doesn't exist while it doesGraph API 告诉我一个对象不存在,而它确实存在
【发布时间】:2018-01-15 18:41:07
【问题描述】:

我开始创建一个小应用程序来获取与 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 并且它提供了我与该用户的对话历史记录。导致错误的总是同一个人,其他人都工作得很好。

有人知道为什么吗?

【问题讨论】:

  • ID是页面还是用户?
  • 这是我在 Facebook 上的好友。
  • 朋友在使用你的应用吗?
  • 看我的回答。你是怎么拿到身份证的?
  • 不,朋友没有使用该应用程序。我通过解析我的 messenger.com 页面获得了 ID。

标签: facebook facebook-graph-api


【解决方案1】:

您只能从授权您的应用程序的用户那里获取数据。授权他们,使用 /me 端点获取他们的 App Scoped ID 和名称。更多信息:https://developers.facebook.com/docs/graph-api/reference/v2.6/user

【讨论】:

  • 但是为什么我能得到其他名字呢?
  • 也许他们停用了应用平台,在这种情况下,任何应用都无法获取任何详细信息。无论哪种方式,您都以错误的方式获得了 ID,请参阅我的其他 cmets。授权用户,它将与他们的应用范围内的用户 ID 一起使用。你实际上甚至不需要他们的 ID,只需使用 /me 来获取他们的名字。
  • 我可以通过 /me 得到他们的名字吗?如何 ?我的意思是没有他们允许该应用程序?因为我不能要求每个朋友都允许这个应用,这太荒谬了
  • 嗯,这是访问他们数据的唯一方法:他们必须授权您的应用。请阅读我回答的第一句话,这是最重要的信息。
【解决方案2】:

我的解决方案是在设置中发布页面

页面可见性 --> 发布

保存更改

【讨论】:

  • 这个解决方案不起作用请提出一些新的建议
【解决方案3】:

尝试从主页设置中移除所有可见性限制(例如国家/地区限制等)

【讨论】:

    猜你喜欢
    • 2011-11-14
    • 1970-01-01
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多