我有一个facebook登录实现,它获取user_likes的用户权限,我们检查用户是否喜欢某个页面。代码在过去6个月左右一直没有任何问题。
突然大约2周后,它突然工作,没有为user_likes提供任何值。 Facebook应用程序是在2014年4月之前创建的,因此API V2.0约束不适用。
我访问facebook的基本代码是
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
));
$user = $facebook->getUser();
if($user){
try{
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
}catch(FacebookApiException $e){
error_log($e);
$user = NULL;
}
}
if($user){
$logoutUrl = $facebook->getLogoutUrl();
}else{
// Get login URL
$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'user_likes, user_birthday, user_location, user_work_history, user_hometown, user_photos,email',
'redirect_uri' => $site_url,
));
}
if($user){
// Save your method calls into an array
$fields='id,name,first_name,last_name,email,username,gender,location,birthday,link,locale';
$queries = array(
array('method' => 'GET', 'relative_url' => '/me?fields='.$fields),
array('method' => 'GET', 'relative_url' => '/'.$user.'/friends'),
array('method' => 'GET', 'relative_url' => '/'.$user.'/likes'),
array('method' => 'GET', 'relative_url' => '/'.$user.'/interests'),
);
// POST your queries to the batch endpoint on the graph.
try{
$batchResponse = $facebook->api('?batch='.json_encode($queries), 'POST');
}catch(Exception $o){
error_log($o);
}
显示" csrf状态标记与提供的标记不匹配"日志中的错误所以我更新了PHP-SDK,希望它能为我解决问题,而且确实如此。一切都开始正常,但是3-4天之后它再次停止工作,现在我甚至无法让用户登录facebook。
有谁知道为什么会这样?