【问题标题】:Facebook Graph API v2.1: getting user id and his postsFacebook Graph API v2.1:获取用户 ID 和他的帖子
【发布时间】:2014-10-05 04:33:45
【问题描述】:

想象一下当我以 userA 身份登录 facebook Web 应用程序时的情况。我知道 userB 的昵称,但他不在我的好友列表中,我不知道他的 ID。而且,当然,他不使用我的应用程序。

  1. 如何通过昵称获取 userB 的 id?
  2. 之后我如何才能获得他的墙贴?

是否有任何特定权限?可能有我错过的手册页吗?

【问题讨论】:

    标签: php facebook-graph-api facebook-php-sdk


    【解决方案1】:

    在 v1.0 中,可以进行以下操作:

    http://graph.facebook.com/v1.0/{user-name}

    但是,对于 v2.0 和 v2.1,无法通过未连接到您的应用程序的 ID 或用户名访问用户。例如,尝试http://graph.facebook.com/v2.1/{user-name} 会抛出错误:

    {
       "error": {
          "message": "(#803) Cannot query users by their username (user-name)",
          "type": "OAuthException",
          "code": 803
       }
    }
    

    使用新的 PHP SDK (v4.0.x),您可以执行以下操作:

    $response = (new FacebookRequest( $session, 'GET', '{user-name}', array(), 'v1.0' ))->execute()->getGraphObject()->asArray();
    

    【讨论】:

    • 不幸的是,如果我将版本字符串添加到我的 API 调用中,我不确定它在 April 30th, 2015 之后是否仍然有效。如果我尝试通过其全局 ID 访问用户,我会收到错误消息 “不允许全局 ID 。请改用应用程序特定 ID。”。如何为具有全局 ID 的用户获取提及的应用程序特定 ID?
    • 是的,v1.0 调用将在 2015 年 4 月 30 日之后停止工作。除非用户授权您的应用,否则您无法获取应用专用 ID。
    • 可以通过最新的facebook PHP SDK调用API v1.0吗?
    • 可以,第五个参数可以用来指定版本,例如:$response = (new FacebookRequest( $session, 'POST', '/me/feed', $data, 'v1.0' ))->execute()->getGraphObject()->asArray();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-27
    • 2022-09-26
    • 2016-06-01
    • 1970-01-01
    • 2018-12-19
    • 1970-01-01
    • 2018-04-27
    相关资源
    最近更新 更多