在facebook PHP SDK新版本的应用程序中所做的更改



我们正在使用旧版本的Facebook connect PHP SDK,我们需要做什么更改才能使应用程序与新更改一起工作(目前该应用程序由于FB应用程序版本更改而无法工作)

更新你的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;
}

简短回答:认证流和REST API弃用

长答:自2.1版本以来,有两个主要的版本变化。你应该通过facebook开发者博客来清楚地了解这些变化。

以下部分公告链接:

  1. 开发者路线图更新:转向OAuth 2.0 + HTTPS
  2. 升级到PHP SDK v3.0.0
  3. 迁移到OAuth 2.0更新:PHP SDK v.3.1.1

使用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访问令牌。这个链接讨论了这个过程:将Facebook会话密钥转换为访问令牌

同样,如果你的是一个使用传统auth的canvas应用程序,你需要按照本页所述进行更改:迁移到OAuth 2.0

最新更新