应用程序中为facebook PHP SDK的新版本进行的更改

时间:2011-12-29 12:17:07

标签: facebook facebook-php-sdk

我们正在使用旧版本的Facebook连接PHP SDK,我们需要做些什么更改才能让应用程序使用新的更改(目前应用程序由于FB应用程序版本更改而无法正常工作)

2 个答案:

答案 0 :(得分:1)

更新PHP SDK,更改连接需求,getSession()不再可用,请改用getUser()。此外,如果您使用太旧的PHP SDK(在Graph API之前),那么您可能必须更新一些API调用函数。

总体连接如下:

$facebook = new Facebook(array(
  'appId'  => '111111111',// your appId here
  'secret' => '1a1a1a1a1a1a1',// your app secret here
));


$user = $facebook->getUser();

if ($user) {
  try {
    $user_profile = $facebook->api('/me');

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

if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();



} else {
  $loginUrl = $facebook->getLoginUrl();
    echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
    exit;
}

答案 1 :(得分:0)

简答:身份验证流程和REST API弃用

长答案:自2.1版以来,已经发生了两次主要版本更改。您应该浏览facebook developer blog以清楚了解更改。

下面的一些公告链接:

  1. Developer Roadmap Update: Moving to OAuth 2.0 + HTTPS
  2. Upgrade to PHP SDK v3.0.0
  3. Migrating to OAuth 2.0 update: PHP SDK v.3.1.1
  4. 使用PHP SDK的新登录流程如下所示:

    $facebook = new Facebook(…);
    $user = $facebook->getUser();
    if ($user) {
      // proceed knowing you have a logged in user who's authenticated
    } else {
      // proceed knowing you require user login and/or authentication
    }
    

    如果您目前正在存储会话密钥,它们将不再起作用。您需要迁移才能使用oauth访问令牌。此SO链接讨论了此过程:Converting Facebook session keys to access tokens

    此外,如果你的是使用旧版身份验证的画布应用,则需要按照此页面所述进行更改:Migrating to OAuth 2.0