代码之家  ›  专栏  ›  技术社区  ›  Ricardo

facebook sdk无效作用域错误

  •  0
  • Ricardo  · 技术社区  · 6 年前

    我想得到用户的生日,但只要我加上 user_birthday 允许我出错 Invalid Scopes: user_birthday. This message is only shown to developers...

    我认为这是第一次被贬低,但一无所获,3的文件也有。 用户生日 许可。( HERE )

    $fb = new Facebook\Facebook([
        'app_id' => 'XXXXXXXXXXXXXXX',
        'app_secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXX',
        'default_graph_version' => 'v3.0',
    ]);
    
    $helper = $fb->getRedirectLoginHelper();
    
    $permissions = ['email', 'user_birthday'];
    $loginUrl = $helper->getLoginUrl('https://mywebsite.com/callback', $permissions);
    
    $loginUrlFinal = 'https://www.facebook.com/dialog/oauth?client_id=XXXXXXXXXXXXXXX&redirect_uri='.$loginUrl.'&state='.urlencode($fb_params);
    

    在这个关于无效作用域的错误之后,我被重定向到我的回调文件,并出现一个“错误请求”错误。

    if (! isset($accessToken)) {
        if ($helper->getError()) {
            header('HTTP/1.0 401 Unauthorized');
            echo "Error: " . $helper->getError() . "\n";
            echo "Error Code: " . $helper->getErrorCode() . "\n";
            echo "Error Reason: " . $helper->getErrorReason() . "\n";
            echo "Error Description: " . $helper->getErrorDescription() . "\n";
        } else {
            header('HTTP/1.0 400 Bad Request');
            echo 'Bad request';
        }
        exit;
    }
    

    编辑: 这几乎是在我添加的任何权限下发生的,到目前为止唯一有效的是 email

    对opengraph的请求 ?fields=email,user_birthday 身份证、姓名、电子邮件正常工作时不返回生日。我想这是因为我不赞成 用户生日 权限,但如果权限屏幕没有打开,我怎么办? Invalid Scopes ?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Ricardo    6 年前

    经过长时间的研究,我发现这是因为我的应用程序是“活的”。似乎只有当前处于开发模式的应用程序才具有工作权限。

    希望它能帮助别人。