yamaguchi
Facebookのパーミッションチェック方法
facebookアプリのを初めて使う時に表示されるパーミッション。
機能ごとに必要なパーミッションを分けたり、後から追加したりする時のチェック方法です。
パーミッションチェックの関数
function checkScope($uid, $scope){ $_ispermit = true; $access_token = $this->facebook->getAccessToken(); try { $fql = 'SELECT '.$scope .' FROM permissions WHERE uid ="'.$uid .'"'; $scopes = $this->facebook->api(array( 'method' => 'fql.query', 'access_token' => $access_token, 'query' => $fql )); foreach($scopes[0] as $k=>$v) { if($v === '0') { $_ispermit = false; } } } catch (FacebookApiException $e) { // エラー処理 $this->isError; exit; } return $_ispermit; }
使い方
$scope = 'publish_stream,read_stream'; // パーミッション定義 $uid = $this->facebook->getUser(); // facebookID取得 $reslut = checkScope($uid, $scope); if (!$reslut) { $redirectUrl = $this->facebook->getLoginUrl(array( 'fbconnect' => 0, 'canvas' => 1, 'scope' => $scope, 'redirect_uri' => $url, // パーミッション取得後の戻り先URL )); echo "<script type='text/javascript'>top.location.href = '".$redirectUrl."';</script>"; }
参考
http://www.masteringapi.com/tutorials/how-to-check-if-user-has-certian-permission-facebook-api/22/