2

我希望我网站上的用户能够使用他们现有的 Facebook 帐户登录。

我从developers.facebook.com下载了Facebook PHP SDK并为我的网站设置了一个应用程序。我只是使用了与 sdk 捆绑在一起的 example.php 文件,并将我的应用程序的“appID”和“秘密”的数字换掉了。

注意:在代码中,“appID”和“secret”正在替换实际的等效项


我有这是我的标题:

require 'src/facebook.php';(这肯定被发现)


这是主页上的代码,登录将在其中(也来自 example.php):

<?php
$facebook = new Facebook(array(
'appId'  => 'appID',
'secret' => 'secret',
));

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

echo "<br />";
var_dump($user);

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();
}

$naitik = $facebook->api('/naitik');
?>

<?php var_dump($user); ?>


<h1>php-sdk</h1>

<?php if ($user): ?>
<a href="<?php echo $logoutUrl; ?>">Logout</a>
<?php else: ?>
<?php echo "LoginURL:"; var_dump($loginUrl);?>
<div>
 <a href="<?php echo $loginUrl; ?>">Login with Facebook</a>

</div>
<?php endif ?>

<h3>PHP Session</h3>
<pre><?php print_r($_SESSION); ?></pre>

<?php if ($user): ?>
<h3>You</h3>
<img src="https://graph.facebook.com/<?php echo $user; ?>/picture">

<h3>Your User Object (/me)</h3>
<pre><?php print_r($user_profile); ?></pre>
<?php else: ?>
<strong><em>You are not Connected.</em></strong>
<?php endif ?>

<h3>Public profile of Naitik</h3>
<img src="https://graph.facebook.com/naitik/picture">
<?php echo $naitik['name']; ?>

当我没有登录 Facebook 并单击链接时,它会将我带到 Facebook 登录页面。登录后,它会使用 url 中的新变量(状态、代码等)重定向回主站点。一旦“登录”,var_dump($user)就返回int(0).

有人能指出我正确的方向吗?我不知道为什么它不能分配用户。


倾销结果$facebook

object(Facebook)#182 (9) { 
["sharedSessionID:protected"]=> NULL 
["appId:protected"]=> string(15) "appID" 
["appSecret:protected"]=> string(32) "secret" 
["user:protected"]=> NULL ["signedRequest:protected"]=> NULL 
["state:protected"]=> NULL ["accessToken:protected"]=> NULL 
["fileUploadSupport:protected"]=> bool(false) 
["trustForwarded:protected"]=> bool(false) 
} 
4

2 回答 2

0

如果您不使用 Facebook 连接,例如以用户身份发帖或类似的东西。您可能只想查看可以从 Facebook 获得的注册表单 iframe 。

于 2012-10-17T01:19:45.260 回答
0

它发生在我身上,当我检查我的 apache 日志时,我发现了这个:

当通过 PHP SDK(使用 Curl)与 Facebook 通信时,我发现它存在 SSL 问题。您必须将 CURL_OPTS "CURLOPT_SSL_VERIFYPEER" 设置为 "false" 。

前任:

facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;

于 2014-04-15T11:35:59.917 回答