【问题标题】:Facebook Page Tab Application - User Denies Access on OAuth Dialog - How Do I Capture the Error?Facebook 页面选项卡应用程序 - 用户拒绝访问 OAuth 对话框 - 我如何捕获错误?
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-28
      • 2012-08-08
      • 1970-01-01
      • 1970-01-01
      • 2013-03-29
      • 1970-01-01
      • 2012-01-25
      相关资源
      最近更新 更多