3

PHP を使用して、アプリのコンテンツにアクセスしようとしている人が特定の Facebook グループのメンバーであることを確認する方法の例はありますか? 私は開発者向けドキュメントを読みましたが、それがなんとかしてできたことは、私をさらに混乱させることだけでした. これに似た投稿を見たことがありますが、メンバーのリストを印刷する方法しか示していません...

リストを取得して、アプリにアクセスしようとしているユーザーがグループのメンバーであるかどうかを確認する方法を知る必要があります。これにより、a: アクセスを許可するか、b: アクセスを拒否して、ユーザーをグループ ページにリダイレクトできるようになります。彼らはメンバーシップをリクエストできます...

4

2 に答える 2

4

はい、非常に簡単です。それを行いたいグループの ID を知り、スコープuser_groups権限を要求するだけで、ユーザーが持っているグループを照会できます。

PHP SDK を使用すると、次のことができます。

<?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',
  );

  $facebook = new Facebook($config);
  $user_id = $facebook->getUser();
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 {

        $user_profile = $facebook->api('/me?fields=id,name,groups','GET');
        $user_belongs_to_group= FALSE;
        foreach($user_profile['groups']['data'] as $group){
          if($group['id']==YOUR_GROUP_ID)
           $user_belongs_to_group=TRUE;
        }
        if($user_belongs_to_group){
         //Alright! the user belongs to the group
        }
        else{
          //Oh snap you don't belong here, but you can if want to
        }

      } 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>';

        }

?>

Facebook から取得したこのコードの一部は、ここでグループのクエリを実行したときに返されるデータを確認できます: https://developers.facebook.com/tools/explorer

名前の後にプラス記号を押して接続に移動し、グループを選択して送信を押します

于 2013-03-24T19:41:43.693 に答える
0

あなたはcatch-22にいます。ユーザーが許可を介して自分のグループに許可を与える必要がありますuser_groups

于 2013-03-24T19:41:57.210 に答える