我正在尝试使用Facebook PHP SDK 5.0下提供的示例登录Facebook。我收到500内部服务器错误。我正在使用来自HostGator的婴儿计划,该计划正在运行Php 5.5.27 PHP INFO 。是否有配置我需要添加到我的服务器以使工作正常?
login.php
y > x
login-callback.php
<?php
session_start();
// Include the required dependencies.
require_once( 'vendor/autoload.php' );
// Initialize the Facebook PHP SDK v5.
$fb = new Facebook\Facebook([
'app_id' => '495994870548274',
'app_secret' => '593f18b375c9e23d34b9794136cf7158',
'default_graph_version' => 'v2.3',
]);
$helper = $fb->getRedirectLoginHelper();
$permissions = ['email']; // Optional permissions
$loginUrl = $helper->getLoginUrl('http://techcomsgb.com/kidneytest/login-callback.php', $permissions);
echo '<a href="' . $loginUrl . '">Log in with Facebook!</a>'
//您可以将它们重定向到仅限会员的页面。 // header('Location:https://example.com/members.php');
答案 0 :(得分:1)
我也有这个错误。大多数事情都在托管方。我通过做一些事来解决。
查看更多:https://benmarshall.me/facebook-php-sdk/#requirements
然后,在callback.php Facebook Exceptions无法正常工作,所以我将其更改为PHP异常方法,如下所示:
try {
$accessToken = $helper->getAccessToken();
} catch(Exception $e) {
// There was an error communicating with Graph
echo $e->getMessage();
exit;
}
然后我收到错误消息。这是date.timezone,我在 php.ini 文件中添加了,现在一切正常。
[date] date.timezone = "America/Los_Angeles"
答案 1 :(得分:0)
简单错误,login-callback.php上的文件权限不正确
答案 2 :(得分:0)
这是因为您忘记在此部分中放置app-id
:
// Validation (these will throw FacebookSDKException's when they fail)
$tokenMetadata->validateAppId({app-id}); // Replace {app-id} with
// your app id
// If you know the user ID this access token belongs to, you can validate
// it here
//$tokenMetadata->validateUserId('123');
$tokenMetadata->validateExpiration();
将{app-id}
替换为您的ID,然后它应该有效。我很惊讶Facebook上没有人指出这一点。
答案 3 :(得分:-1)
对我来说,这是$helper->getLoginUrl()
返回的链接,所以我只是将https://www.facebook.com/v2.8/dialog/oauth替换为https://graph.facebook.com/oauth/authorize。
$login_url = $login_helper->getLoginUrl('www.yoururl.com/fb-callback.php'), $permissions);
$login_url = str_replace('https://www.facebook.com/v2.8/dialog/oauth?', 'https://graph.facebook.com/oauth/authorize?', $login_url);
请查看此帖子以获取参考Facebook oauth authorize URL and parameter options
“当您想手动构建登录流程时,您应该使用/ oauth / authorize .. else如果您正在使用它使用/ dialog / oauth的facbook提供的javascript / Apps api”