0

我的标签需要知道用户成为粉丝的日期,所以我必须请求权限。尽管有 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 没有任何参数。

我能做些什么?

4

1 回答 1

0

您只能使用app_dataURL 中的参数将数据传递到选项卡上的 iframe。您必须将不成功的登录尝试重定向到如下 URL:

https://www.facebook.com/{your_page}?v=app_{app_id}&app_data={your_string}

例如https://www.facebook.com/{your_page}?v=app_{app_id}&app_data=login_failed

仍然会出现login_failed在解码signed_request

于 2012-05-30T10:44:09.883 回答