尝试使用php登录Facebook时出错

时间:2014-01-31 08:52:44

标签: php facebook facebook-php-sdk

我正在尝试使用facebook php-sdk创建简单的php登录。我正在使用来自facebook开发者网站的示例php代码:

 <?php
   // Remember to copy files from the SDK's src/ directory to a
   // directory in your application on the server, such as php-sdk/
   require_once('php-sdk/facebook.php');

   $config = array('appId' => 'YOUR_APP_ID','secret' => 'YOUR_APP_SECRET', 'allowSignedRequest' => false // optional but should be set to false for non-canvas apps);
   $facebook = new Facebook($config);
   $user_id = $facebook->getUser();
?>
<html>
 <head></head>
<body>
<?php
if($user_id) {

  // We have a user ID, so probably a logged in user.
  // If not, we'll get an exception, which we handle below.
  try {
    $ret_obj = $facebook->api('/me/feed', 'POST',
                                array(
                                  'link' => 'www.example.com',
                                  'message' => 'Posting with the PHP SDK!'
                             ));
    echo '<pre>Post ID: ' . $ret_obj['id'] . '</pre>';

    // Give the user a logout link 
    echo '<br /><a href="' . $facebook->getLogoutUrl() . '">logout</a>';
  } catch(FacebookApiException $e) {
    // If the user is logged out, you can have a 
    // user ID even though the access token is invalid.
    // In this case, we'll get an exception, so we'll
    // just ask the user to login again here.
    $login_url = $facebook->getLoginUrl( array(
                   'scope' => 'publish_stream'
                   )); 
    echo 'Please <a href="' . $login_url . '">login.</a>';
    error_log($e->getType());
    error_log($e->getMessage());
  }   
} else {

  // No user, so print a link for the user to login
  // To post to a user's wall, we need publish_stream permission
  // We'll use the current URL as the redirect_uri, so we don't
  // need to specify it here.
  $login_url = $facebook->getLoginUrl( array( 'scope' => 'publish_stream' ) );
  echo 'Please <a href="' . $login_url . '">login.</a>';

} 

?>      

  </body> 
 </html>  

我也尝试过几个来自互联网的样本,我总是遇到同样的问题。在我从Facebook授予权限后,Facebook应该将页面返回到我的页面,但它会抛出一个错误(这是我母语的翻译错误所以它可能与实际的英文版本略有不同):&#34;错误此功能是刚才不可用:处理此请求时出错。稍后再试。&#34;在URL中有&#34; error_code = 2&amp; error_message =&#34;如果这有帮助吗?我已在Facebook应用程序页面中配置了app_id和app-secret,其中还设置了显示名称,电子邮件地址,域名和站点URL。

同样在该代码中,我为SDK和app_id以及secret_id设置了正确的目录。

让我想知道我在Facebook应用程序中是否有错误的个人资料?我尝试的每个代码都给出了相同的错我和几个不同的人一起尝试过。在用户Facebook中,应用程序部分显示我的应用程序名称和给定的权限很可能这是一个简单的问题,我再也看不到了......

1 个答案:

答案 0 :(得分:0)

问题是我的申请不公开。为什么需要花费几个小时才能找到问题,在这里问到你是否通过我们自己创造出解决方案? :d