0

私は Facebook アプリケーションを開発し、PHP-sdk を使用します。公式ドキュメントに記載されているアルゴリズムを使用して、ユーザーがアプリに参加できるようにし、ユーザーの 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 をデータベースに保存しますか?

または、一部のユーザーが投稿を公開できないという説明は何ですか?

4

0 に答える 0