facebook用户身份验证和张贴在用户墙上


facebook user authentication and post on user wall

我遵循了这个视频教程,但我被卡住了。当我点击登录链接时,浏览器一直在加载,然后什么都没有发生,登录页面仍然在我面前。它总是在$user_id中返回0。它之前向我显示了1到2次facebook身份验证页面,我点击了"允许",但现在什么都没发生。还有一件事,当我点击登录链接时,浏览器url从更改

"http://localhost/php/fbdata.php"

"http://localhost/php/fbdata.php?state=e1d5ccf919c6a9d3325200596c12b447&代码=AQDg8hE1GuKQ6eq9nGeLV8BIK8EjeIuY8Drf6g0FwAWAjGkvFi70EoNquPmoYsk2PxKpcfxVWYqNgVxU7rRQ-xBxcZXziH5n9IXNNl1KzLtUYgVRKqWRczh2wINcvDY8WuWoMpIETxWpYhIbrZ-w46xB1v2YMADbOfrFNxLhiyIC239GIQRC__Tw_KiYoZiK1A#="

我不知道它是在给我退货还是其他什么。我想要的是,我可以在我的脸书页面上发布"你好世界"。这是我的php代码。

require_once('facebook.php');

$config = array(
'appId' => 'xxxxx',
'secret' => 'xxxxxxxxxx',
'cookie' => 'true'
  );
$facebook = new Facebook($config);
$user_id = $facebook->getUser();
$user_profile=null;  
if($user_id) 
{
  try 
  {
        $user_profile = $facebook->api('/me');
        $facebook->api('/me/feed','post',array(
        'message'=>'hello world'
        ));
  } 
  catch(FacebookApiException $e) 
  {
        echo $e->getMessage();
  }   
}
if($user_id)
{
    $logout_url=$facebook->getLogoutUrl();  
    echo "<a href='$logout_url'>Logout</a>";
}
else
{
    $login_url=$facebook->getLoginUrl(array(
    'scope'=>'read_friendlists,publish_stream,email,user_work_history,user_website,user_religion_politics,user_relationship_details,user_relationships,user_interests,user_hometown,user_education_history,user_birthday,user_about_me'
    ));
    echo "<a href='$login_url'>Login</a>";
}

Mauzzam,

这段代码对我有效-请看一下PHP SDK 中的examples文件夹

<?php
require '../src/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
  'appId'  => '350881691595504',
  'secret' => 'a50ae255f0ba3c24000e38ede7f666b9',
));
$user = $facebook->getUser();
if ($user) {
  try {
    $response = $facebook->api('/me/feed','post',array(
      'message'=>'hello world'
    ));
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}
// Login or logout url will be needed depending on current user state.
if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl();
}
?>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
  <head>
    <title>PHP SDK TEST</title>
  </head>
  <body>
    <?php if ($user): ?>
      <a href="<?php echo $logoutUrl; ?>">Logout</a>
    <?php else: ?>
      <div>
        Login using OAuth 2.0 handled by the PHP SDK:
        <a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
      </div>
    <?php endif ?>
    <?php if ($user): ?>
      <h3>Hello World Result</h3>
      <pre><?php print_r($response); ?></pre>
    <?php else: ?>
      <strong><em>You are not Connected.</em></strong>
    <?php endif ?>
  </body>
</html>