【问题标题】:Facebook Graph Api 2.1 get userid from usernameFacebook Graph Api 2.1从用户名获取用户ID
【发布时间】:2014-11-21 14:37:44
【问题描述】:

我正在寻找一种解决方案,可以从个人资料 url 或 fb 用户名中为我提供用户 ID

example :http://facebook.com/username

获取此网址的用户名

当我尝试阅读朋友时(我有朋友相关的权限),我得到空白数据数组 ex:

 graph api requ: https://graph.facebook.com/v2.1/me/friends?access_token=xxxxx
 response:
    {
      "data": [
      ], 
      "summary": {
        "total_count": 455
      }
    }

请告诉我如何在 Facebook graph api v2.1 中使用用户名获取好友列表和用户 ID

【问题讨论】:

  • 你不能。无法从用户名中获取 user_id。 /me/friends 返回正在使用该应用程序并授予它 user_friends 的朋友。所以你没有任何朋友这样做过
  • 感谢您让我知道 fb 没有用于从用户名获取 user_id 的 api。但是对于 /me/friends 我有 (user_friends) 的权限,但我仍然收到空白数据响应,您可以在上面看到我收到了我的朋友的总数,但数据的响应是空白的。还有更多的事情如果您使用旧的 fb 应用程序进行测试,那么结果可能会有所不同,我建议您只创建一个仅支持图 2.1 的新 fb 应用程序,它将为“我/朋友”提供相同类型的错误给你。
  • 您没有阅读我的回复。您只会获得授予您应用 user_friends 权限的朋友。

标签: facebook facebook-graph-api facebook-graph-api-v2.0


【解决方案1】:

嗨,dhiraj,您可以通过这样做获得您所有朋友的用户名、用户 ID 和他们的个人资料图片....https://graph.facebook.com/v2.1/me/taggable_friends?access_token=xxxxx....Hope 这有帮助...如果您认为这是一个答案,请不要忘记投票

https://graph.facebook.com/v2.1/me/friends?access_token=xxxxx 将返回正在使用您的应用程序的朋友,即已验证您的应用程序的朋友...而https://graph.facebook.com/v2.1/me/taggable_friends?access_token=xxxxx 将返回您的所有朋友

【讨论】:

  • 我能够获得可标记的朋友,但是当我调用 api graph.facebook.com/v2.1/me/friends?access_token=xxxxx 时,它只会给我响应 { "data": [ ], "summary": { "total_count": 458 } },我不能得到朋友的名字,只能看到 total_count...,我有 'user_friends' 权限
  • 当然它会给你作为数据的响应": [ ] 因为...调用 api graph.facebook.com/v2.1/me/friends?access_token=xxxxx 将返回用户朋友的详细信息授权您的应用程序的数据,即谁在使用您的应用程序......响应在数据中返回 null 意味着您的朋友都没有使用您的应用程序......清楚吗?
  • 顺便问一下为什么你不想用 me/taggable_friends 来获取你朋友的详细信息?
  • 我只是想获取我的朋友列表,我正在使用这个 api graph.facebook.com/v2.1/me/friends?access_token=xxxxx ,在我在 facebook 上创建一个新的应用程序进行生产后它不起作用。它只是返回给我{ "data": [ ], "summary": { "total_count": 458 } } 它,但我无法获取朋友的姓名和 ID
  • 检查此链接developers.facebook.com/docs/graph-api/reference/v2.1/user/….... 其中明确提到 1)这只会返回任何使用(通过 Facebook 登录)提出请求的应用程序的朋友。 2)如果该人的朋友拒绝了user_friends权限,该朋友将不会出现在此人的朋友列表中
【解决方案2】:

重复:api to get uid from profile URL on facebook

您可以像这样直接调用图表: https://graph.facebook.com/username 其中 username 是您的用户名 想查找。

编辑:过时

【讨论】:

    【解决方案3】:

    graph.facebook.com/username 已停止工作。有一个令人不快的解决方法。在我有限的测试中,这适用于 Chrome。

    无论您在时间线条目中的何处看到 facebook 用户名,请右键单击并选择“检查元素”。在打开的窗口中,向上滚动一点并查找字符串:

    "data-hovercard="/ajax/hovercard/hovercard.php?id=".

    您右键单击的用户名的 Facebook id 跟在 = 符号后面。

    这似乎只适用于时间线上的名字。

    【讨论】:

      【解决方案4】:

      我还注意到 /me/home 节点中的 JSON 提供了来自喜欢任何东西的人的用户名和他们的 ID。由于这些人也可能是朋友,因此您可以通过结合 taggable_friends 查看此提要来部分确定朋友的用户 ID。我不确定 Facebook (v2.3) 的使用条款在这方面有何规定——所以这可能是不允许的?

      【讨论】:

        【解决方案5】:

        我发现如果您访问用户名页面,例如:

        https://www.facebook.com/username
        

        如果你右键点击用户的照片,复制图片链接你会得到类似的东西:

        https://www.facebook.com/photo.php?fbid=12332322&set=a.1afs2&type=3&source=11&referrer_profile_id=100024670088999
        

        referrer_profile_id 是用户的 facebook id。从 API 的角度来看没有多大帮助,但可以为您提供 id。

        【讨论】:

          【解决方案6】:

          您可以从服务器端代码向 Facebook 个人资料页面发送 HTTP 请求
          即请求https://facebook.com/some_username
          解析收到的包含 HTML 源代码的响应 并搜索具有content 属性的<meta> 标记,其值类似于fb://profile/xxx,其中xxx 将是您要查找的配置文件ID。

          #更新(2020 年 5 月):
          Facebook 最近切换到新的网络界面,我上面提到的元标记只在旧版本中找到。
          在新的 Facebook 版本中,您可以在许多地方找到个人资料 ID,但到目前为止我发现的只是各种 <script> 标签的正文。
          您可以解析任何以requireLazy 开头的脚本正文并查找

          "result":{"data":{"user":{"id":"xxx"}
          

          或者

          "userID":"xxx"
          

          【讨论】:

            猜你喜欢
            • 2011-08-12
            • 2011-10-31
            • 1970-01-01
            • 1970-01-01
            • 2019-04-27
            • 2011-08-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多