权限错误Oauth2.0

时间:2011-11-05 10:35:24

标签: facebook permissions oauth-2.0

我的应用尚未赶上facebook的oauth的新变化。之前,我能够为用户请求权限,然后他们可以访问我的应用程序。现在,新用户无法再向我的应用授予权限。他们被发送到:

https://www.facebook.com/dialog/permissions.request?app_id=myappid&display=page&next=http%3A%2F%2Fwww.mywebsite.com%2Ffacebook%2F&response_type=code&state=094d0568ec11f05e8cc594d69342d0e1&fbconnect=1

并收到消息"抱歉,出了点问题。我们会尽快修复它。"另一方面,如果用户在oauth之前已经为我的应用授予了权限,那么一切都还可以。

php就像这样:

$user = $facebook->getUser();

if ($user) {
  try {
    // If the user has been authenticated then proceed
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
 }

 // If the user is authenticated then generate the variable for the logout URL
 if ($user) {
 $logoutUrl = $facebook->getLogoutUrl();

然后用户收到我的应用程序的html索引页面。否则,它们应该通过页面末尾的以下php重定向到请求权限对话框:

 } else {
   $loginUrl = $facebook->getLoginUrl(array('redirect_uri' => $fbconfig['appUrl']));
   print "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
 }

就像我说的,预先注册的用户可以完美地访问内容,但新成员会遇到上述错误,而不是权限屏幕。

任何人都可以帮我解决我的权限问题吗?感谢您的任何建议

1 个答案:

答案 0 :(得分:0)

您收到的错误消息是

 API Error Code: 191
 API Error Description: The specified URL is not owned by the application
 Error Message: redirect_uri is not owned by the application.

这意味着您尝试在登录后立即重定向用户,该页面不属于您的应用程序(根据您的配置)

最可能的原因是$fbconfig['appUrl'])中定义的网址与您在“网站域名”字段中的应用设置中配置的网址不匹配