我的标签需要知道用户成为粉丝的日期,所以我要求获得权限。尽管有facebook官方文档,但我已成功完成并且用户被重定向到oauth对话框,并在确认之后返回选项卡。
$user = $facebook->getUser();
if ($user)
{
$access_token = $facebook->getAccessToken();
$user_profile = $facebook->api('/me');
try
{
$likes = $facebook->api("/me/likes/pageid");
}
catch (FacebookApiException $e)
{
$user = null;
}
}
else
{
?>
<script type="text/javascript">
var oauth_url = 'https://www.facebook.com/dialog/oauth/';
oauth_url += '?client_id=<?=$app_id?>';
oauth_url += '&redirect_uri=' + encodeURIComponent('https://www.facebook.com/<?=$pageid?>?sk=app_<?=$app_id?>');
oauth_url += '&scope='
window.top.location = oauth_url;
</script>
<?
die();
}
一切正常,但是如果用户不接受对话框,我无法解析错误响应。 返回的网址是:
https://www.facebook.com/page?sk=app_appid&error_reason=user_denied&error=access_denied&error_description=The+user+denied+your+request.#_=_
但是iframe里面的标签没有任何参数。
我该怎么办?
答案 0 :(得分:0)
您只能使用网址中的app_data
参数将数据传递到标签上的iframe。您必须将不成功的登录尝试重定向到以下URL:
https://www.facebook.com/{your_page}?v=app_{app_id}&app_data={your_string}
E.g。 https://www.facebook.com/{your_page}?v=app_{app_id}&app_data=login_failed
login_failed
仍会出现在已解码的signed_request