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

发布于 2025-01-03 12:48:53 字数 1029 浏览 0 评论 0原文

设想: 我构建了一个需要授权的 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 进行格式化才能在已安装页面的上下文中打开应用程序。

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

Scenario:
I built a Facebook tab application that requires authorization.
The application is installed on a Facebook page.
When an unauthorized user accesses the application I redirect to the OAuth dialog:

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

Note the "redirect_uri" is the Application on the installed Facebook page.
So, if the user allows we redirect to the tab application - This works fine!

But, if the user denies access (clicks Cancel button - using new OAuth dialog).
The user is again redirected to the tab application and again redirected to the OAuth dialog.

I have noted from the documentation that when the user denies access the browser will redirect to the "redirect_uri" with the following parameters: error=access_denied&
error_description=The+user+denied+your+request.

But if Facebook is using an additional redirect to my application from the "redirectt_uri": http://www.facebook.com/pages/page name/pageid?sk=app_appid

...the error response seems to be lost.
Note: I can successfully capture the error parameters when setting the "redirect_uri" to the canvas url, but I need to have the redirect_uri formatted to open the application in the context of the installed Page if the user allows access.

How would I capture the error parameters in this scenario?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最后的乘客 2025-01-10 12:48:53

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

I solved this by adding a flag to the app_data parameter for the redirect_uri. When the user accesses the application initially, this flag is set. I check for OAuth token, if one does not exist I redirect to the OAuth dialog with a redirect_uri to the application installed on the Fan Page. The redirect_uri now includes the flag in the app_data parameter. So, after "Canceling" the application, Facebook redirects to the installed application on the Fan Page - I then check for the flag and redirect to an error page.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文