【发布时间】:2012-02-29 05:05:50
【问题描述】:
场景: 我构建了一个需要授权的 Facebook 选项卡应用程序。 该应用程序安装在 Facebook 页面上。 当未经授权的用户访问应用程序时,我会重定向到 OAuth 对话框:
http://www.facebook.com/dialog/oauth?client_id=appid&redirect_uri=http://www.facebook.com/pages/pagename/pageid?sk=app_appid&scope=user_birthday,user_location&display=page
请注意,“redirect_uri”是已安装 Facebook 页面上的应用程序。 因此,如果用户允许我们重定向到选项卡应用程序 - 这很好!
但是,如果用户拒绝访问(单击取消按钮 - 使用新的 OAuth 对话框)。 用户再次被重定向到选项卡应用程序并再次被重定向到 OAuth 对话框。
我从文档中注意到,当用户拒绝访问时,浏览器将使用以下参数重定向到“redirect_uri”:error=access_denied& error_description=+用户+拒绝+您的+请求。
但如果 Facebook 使用从“redirectt_uri”到我的应用程序的额外重定向:http://www.facebook.com/pages/pagename/pageid?sk=app_appid
...错误响应似乎丢失了。 注意:我可以在将“redirect_uri”设置为画布url时成功捕获错误参数,但如果用户允许访问,我需要格式化redirect_uri才能在已安装页面的上下文中打开应用程序。
在这种情况下如何捕获错误参数?
【问题讨论】:
标签: dialog facebook-oauth access-denied