首页 文章

Facebook页面选项卡应用程序 - 用户拒绝访问OAuth对话框 - 如何捕获错误?

提问于
浏览
2

场景:我构建了一个需要授权的Facebook标签应用程序 . 该应用程序安装在Facebook页面上 . 当未经授权的用户访问应用程序时,我会重定向到OAuth对话框:

http://www.facebook.com/dialog/oauth?client_id=appid&redirect_uri=http://www.facebook.com/pages/page name / 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/page name / pageid对我的应用程序进行额外的重定向?sk = app_appid

...错误响应似乎丢失了 . 注意:我可以在将“redirect_uri”设置为画布URL时成功捕获错误参数,但是如果用户允许访问,我需要将redirect_uri格式化为在已安装页面的上下文中打开应用程序 .

如何在此方案中捕获错误参数?

1 回答

  • 0

    我通过在redirect_uri的app_data参数中添加一个标志来解决这个问题 . 当用户最初访问应用程序时,将设置此标志 . 我检查了OAuth令牌,如果不存在,我会使用redirect_uri重定向到OAuth对话框,并将其安装到Fan Page上安装的应用程序中 . redirect_uri现在包含app_data参数中的标志 . 因此,在“取消”应用程序之后,Facebook会重定向到粉丝页面上已安装的应用程序 - 然后我会检查标志并重定向到错误页面 .

相关问题