gpt4 book ai didi

php - 用户点击 "dont allow"时如何处理facebook授权

转载 作者:行者123 更新时间:2023-11-29 20:16:36 24 4
gpt4 key购买 nike

我正在开发一个基于 iFrame 的 facebook 选项卡应用程序。除了处理用户单击“不允许”的情况外,我在授权方面一切正常。但是我被困在这里了。在昨晚花了几个小时试图解决这些问题后,我不知道从这里该何去何从。

我的应用程序的流程是这样的。首先提示用户“喜欢”页面以访问更多应用程序。此时,如果他们点击下一步,则会显示下一步,但首先会检查该应用程序是否已获得授权。如果不是,则将某些 JS 放置在 onload 事件中,该事件将父框架重定向到授权链接,并将 return_uri 设置为页面应用程序选项卡的链接。如果用户单击“允许”,这将非常有效。如果他们单击“不允许”,那么它最终会按照目前的情况进入循环,反复返回授权页面。如果用户希望重新考虑他们的选择,我希望它做的是显示一个带有返回授权页面链接的小解释页面。

我发现阻止我处理这个 ok 的问题是应用程序位于 return_uri 链接回的页面上的 iframe 中(页面上的应用程序选项卡)。因此错误和 error_reason GET 变量对我的代码不可用,只有 facebook 的父框架不在我的控制之下。

我该怎么做才能将此功能添加到我的应用程序中?谢谢!

最佳答案

我在页面选项卡上遇到了完全相同的问题。我正在使用 OAuth 对话框来处理登录,但就像你说的那样,你重定向到其中包含应用程序的页面 url,但你无法得到错误。

我所做的是设置一个 session 变量,我试图在重定向到身份验证对话框之前对其进行授权。这样,如果我最终没有获得授权用户,我可以看到他们已经尝试过并显示适当的消息。像这样:

$facebook = new Facebook(array(
'appId'=>'my_app_id',
'secret'=>'my_secret')
);

$fb_user = $facebook->getUser();
if( $fb_user ) {
$_SESSION['auth_check'] = 0;
// rest of application is authorized
}
elseif( isset($_SESSION['auth_check']) && $_SESSION['auth_check'] ) {
// we attempted to authorize before and something went wrong
// show a message explaining they need to authorize
$_SESSION['auth_check'] = 0; // set so they get the auth screen again
}
else {
$_SESSION['auth_check'] = 1; // attempting to authorize
header("Location: $fb_oauth_dialog");
}

希望对您有所帮助!

关于php - 用户点击 "dont allow"时如何处理facebook授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6387847/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com