2011-11-05 153 views
0

我的应用程序尚未赶上Facebook的oauth中的新变化。之前,我可以为用户请求权限,然后他们可以访问我的应用程序。现在,新用户不再能够将权限授予我的应用程序。它们被发送到:权限错误Oauth2.0

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>"; 
} 

,但新成员打招呼与上述错误而不是权限屏幕。

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

回答

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'])定义的URL不匹配,你已经在你的应用程序设置配置在网站域(s)域

+0

@ IGY什么。谢谢。我不确定为什么这几个星期前不再有效。为了澄清,$ fbconfig ['appUrl'])被设置为https:// mywebsite.com/facebook/。我的网站网址和画布网址都设置为与上面的网址相同。谢谢你的帮助。 –

+0

'App Domain'字段是这里最有可能的罪魁祸首,它位于应用类别选择正上方的基本设置页面 - 网站URL和画布网址设置不同 – Igy

+0

感谢Igy。 'site url'(https :)被设置为与$ fbconfig ['appUrl'])相同的值,它被设置为与我的'secure canvas url'相同的值。另一方面,“画布页面”设置为apps.facebook.com/myapp/。仍然无法正常工作,但是..感谢您的帮助 –