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/


