2012-02-07 35 views
2

场景: 我构建了一个需要授权的Facebook选项卡应用程序。 该应用程序安装在Facebook页面上。 当未授权的用户访问我重定向到OAuth的对话应用程序:Facebook页面选项卡应用程序 - 用户拒绝访问OAuth对话框 - 如何捕获错误?

http://www.facebook.com/dialog/oauth?client_id=appid&redirect_uri=http://www.facebook.com/pages/page名称/的pageid SK = app_appid &范围= user_birthday,USER_LOCATION &显示=页

注意 “REDIRECT_URI” 是在应用程序上已安装的Facebook页面。 所以,如果用户允许我们重定向到标签应用程序 - 这工作正常!

但是,如果用户拒绝访问(点击取消按钮 - 使用新的OAuth对话框)。 用户再次被重定向到选项卡应用程序,并再次被重定向到OAuth对话框。

我从当用户拒绝访问浏览器重定向到“REDIRECT_URI”具有以下参数的文件指出:错误= ACCESS_DENIED & ERROR_DESCRIPTION = +的用户+否认+您+请求。

但如果Facebook正在使用其他重定向到我的应用程序从“redirectt_uri”:http://www.facebook.com/pages/page名称/ SK的pageid = app_appid

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

在这种情况下我将如何捕获错误参数?

回答

0

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

相关问题