当用户同意并给我的Facebook应用程序权限?

时间:2013-04-19 18:52:33

标签: facebook facebook-php-sdk facebook-apps

我开发了一个Facebook应用程序,我使用PHP-sdk我使用official documentation中描述的算法允许用户加入我的应用程序,然后将他/她的user_id存储在数据库中。我的应用程序使用publish_stream权限,因此它会自动将帖子发布到用户的时间线。

我发现应用程序始终无法发布数据库中某些注册用户的帖子(不是全部)。我对此进行了说明,因为他们可能会在批准所需权限之前注册到数据库。以下是我在Facebook api官方文档中使用的代码蓝图

<?php  
  require_once('php-sdk/facebook.php');
  $config = array(
    'appId' => 'YOUR_APP_ID',
    'secret' => 'YOUR_APP_SECRET',
  );
  $facebook = new Facebook($config);
  $user_id = $facebook->getUser();
?>
<html>
  <head></head>
  <body>

  <?php
    if($user_id) {
      try {
       /* $user_profile = $facebook->api('/me','GET');
        echo "Name: " . $user_profile['name'];*/
     //Here I run the code to save.
         saveTheUserIdToRecordInTheDB($user_id);
       //hypothetical function to save

      } 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(); 
        echo 'Please <a href="' . $login_url . '">login.</a>';
        error_log($e->getType());
        error_log($e->getMessage());
      }   
    } else {

      // No user, print a link for the user to login
      $login_url = $facebook->getLoginUrl();
      echo 'Please <a href="' . $login_url . '">login.</a>';

    }

  ?>

  </body>
</html> 

我的主要问题是:如果用户点击了登录链接,然后他/她因任何原因没有继续(丢失互联网连接,拒绝授予该应用的权限,等等,是否可能假设函数 saveTheUserIdToRecordInTheDB()运行并将该用户的Facebook ID保存到数据库?

对于有些用户不是可发布的帖子有什么解释?

0 个答案:

没有答案