oauth不显示user_checkins权限

TiT*_* K. 2 permissions facebook checkin

我的脚本重定向到facebook的oauth对话框,需要user_checkins权限

<?php
session_start();
$app_id = "[APP_ID]";
$app_secret = "[APP_SECRET]";
$my_url = "(back to this page)";

$code = $_REQUEST["code"];

if(empty($code)) {
 $_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
 $dialog_url = "https://www.facebook.com/dialog/oauth?client_id=" 
   . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state="
   . $_SESSION['state']."&scope=user_checkins"  ;
 echo("<script> top.location.href='" . $dialog_url . "'</script>");
}

if($_REQUEST['state'] == $_SESSION['state']) {
 $token_url = "https://graph.facebook.com/oauth/access_token?"
   . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
   . "&client_secret=" . $app_secret . "&code=" . $code;

 $response = @file_get_contents($token_url);
 $params = null;
 parse_str($response, $params);

$graph_url = "https://graph.facebook.com/me?fields=checkins&access_token=" 
  . $params['access_token'];

 $user = json_decode(file_get_contents($graph_url));
 echo "<pre>";
 print_r($user);
 echo "</pre>"; 
} else {
  echo("The state does not match. You may be a victim of CSRF.");
}
?>
Run Code Online (Sandbox Code Playgroud)

仅对话框显示

THIS APP WILL RECEIVE:

? Your basic info
Run Code Online (Sandbox Code Playgroud)

但它应该还有一行签入权限,不是吗?

所以,我尝试使用Graph API Explorer.首先我用我的APP测试,结果是一样的,仍然无法获得user_checkins权限

但是,如果我将"应用程序:"部分更改为Graph API Explorer并再次测试,那么一切似乎都没问题.

所以,我认为这是我的APP设置的原因..或者什么......

你能建议我怎么解决这个问题吗?

小智 9

从它的外观来看,我会说Facebook已经弃用了user_checkins和friends_checkins权限,并将它们转换为user_status和friends_status.

无论如何,请求user_status权限,您现在可以读取用户的签到.