【问题标题】:Facebook Graph API can't fetch "verified" profile dataFacebook Graph API 无法获取“已验证”的个人资料数据
【发布时间】:2011-08-24 23:20:59
【问题描述】:

在使用图形 API 时,我似乎无法获取要验证的键/值对,我知道已验证需要访问令牌,我的代码如下。

 $facebook = new Facebook(array(
        'appId' => '1234',
        'secret' => '567',
    ));

// Get User ID
$user = $facebook->getUser();
$token = $facebook->getAccessToken();

if ($user) {
try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api("/$user/?access_token=$token");

} catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
}
}

$user_profile 中从来没有经过验证的数据。有什么想法吗?

【问题讨论】:

  • 使用 php sdk 你不需要手动传递access_token

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


【解决方案1】:

如果您使用的是 PHP SDK,则无需传递访问令牌,因为它已为您传递。另外,你不需要用户ID,你可以使用/me:

$user_profile = $facebook->api("/me");

确保您也对您的应用进行了身份验证 - 我认为这里不会发生这种情况,尽管它可能会发生在您未显示的其他地方。

【讨论】:

    【解决方案2】:

    您不一定需要这样做:

    $user_profile = $facebook->api("/$user/?access_token=$token");
    

    你可以这样做:

    $user_profile = $facebook->api("/me");
    

    【讨论】:

      【解决方案3】:

      搭上$token = $facebook->getAccessToken();

      变化:

      if ($user) {
        try {
          // Proceed knowing you have a logged in user who's authenticated.
          $user_profile = $facebook->api('/me');
        } catch (FacebookApiException $e) {
          error_log($e);
          $user = null;
        }
      }
      

      【讨论】:

      • 是的,我最初就是这样,它似乎可以与我的普通 Facebook 帐户一起使用,但是当我尝试使用其他经过验证的帐户时根本不会出现。但听起来这是正确的代码。可能是测试帐户的问题。
      猜你喜欢
      • 2014-06-24
      • 1970-01-01
      • 2013-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多