【问题标题】:How to check if a user has already authorized an app in facebook如何检查用户是否已在 facebook 中授权应用程序
【发布时间】:2014-04-28 22:56:28
【问题描述】:

在让应用请求授权之前,我尝试发出 fql 请求以获取用户参数(至少是基本权限允许的参数),以检查他是否已经授权过一次应用(拥有例如,授权应用程序我会将他们的名字存储在 cookie 上,我会将 fql 请求结果与他们的列表进行比较..) 但我无法从该 fql 请求中获得任何信息。我认为现在通过阅读this question 是不可能知道的.. 任何线索?

我不是要知道用户是否实时授权了应用程序,而是在过去甚至在登录然后退出之前。

【问题讨论】:

    标签: facebook facebook-graph-api titanium facebook-fql


    【解决方案1】:

    我认为您可以查询user 表并检查is_app_user 的值。

    SELECT is_app_user FROM user WHERE uid = 'USER-ID'
    

    但问题是,您究竟想在哪里检查呢?登录后就可以知道用户是否授权了应用!

    【讨论】:

    • 我想我已经尝试过 is_app_user 但没有帮助,我想检查用户在尝试使用 facebook 登录应用程序时是否已经授权该应用程序,以便如果他已经授权,他将仅登录应用程序而不会在 facebook 中获得新的授权请求。
    • 好吧,你不必检查这个,facebook自己处理这个。如果用户之前已经授权过你的应用,登录时不会再次提示授权!
    • 我的所有问题都来自于将登录名与 facebook 登录名混合到我的应用程序中,这确实是对应用程序授权的请求,并且不应在每次用户想要使用来自该请求的凭据登录应用程序时发生(如果用户从不注销,请求总是会产生结果,但这在我的应用程序中没有得到保证)。我必须把它们分开..
    【解决方案2】:

    当你授权你的应用时,用户必须先登录facebook,这意味着你可以检查用户是否登录,如果没有,这并不意味着他之前没有授权过这个应用,但如果是,那么该应用当然是经过授权的,也许这不是您真正想要的,但我认为它可以完成这项工作。

    if(Facebook.loggedIn) {
       alert("Must be authorised before");
    }
    else {
       alert("If this is the first time, the app is not authorised yet.");
    }
    

    顺便说一句,在您需要之前不要从 facebook 注销,这样您始终获得授权,并且可以在应用期间随时请求您想要的内容。

    【讨论】:

    • 我已经测试过用户过去授权应用但 facebook.loggedIn = false 的情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-17
    • 2016-10-21
    • 2015-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多