我们正在使用旧版本的Facebook连接PHP SDK,我们需要做些什么更改才能让应用程序使用新的更改(目前应用程序由于FB应用程序版本更改而无法正常工作)
答案 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以清楚了解更改。
下面的一些公告链接:
使用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