【问题标题】:Check if user has my Facebook app installed检查用户是否安装了我的 Facebook 应用
【发布时间】:2016-04-02 21:11:30
【问题描述】:

我的网站使用 Facebook 应用程序向其用户发送通知。

在我的一个页面上,用户可以订阅或取消订阅(取决于他是否订阅)。

因此,我想检查用户是否在使用我的应用。我怎样才能做到这一点?我想我可以执行以下操作来查看应用程序是否可以访问数据:

FacebookClient c = new FacebookClient(accessTokenClaim.Value);
c.AppId = MYAPPID;
c.AppSecret = MYAPPSECRET;
dynamic access = c.Get("/me/permissions");
if(access != null)
{
//has access
}

然而,我不喜欢这件事的一件事是,我必须使用访问令牌来查看用户是否安装了应用程序。

我不想使用访问令牌,因为它们往往会过期。

在我的数据库中,我存储了我所有网站用户的 Facebook 用户 ID。 因此,如果我可以执行以下操作将是理想的:

/get?appinstalled&userid=USERID

最好的方法是什么?

【问题讨论】:

    标签: asp.net facebook facebook-graph-api asp.net-identity claims-based-identity


    【解决方案1】:

    要获取当前用户 ID - 将其与您的数据库进行比较 - 您必须使用访问令牌访问 FB 图形 API。所以我认为如果不使用 FB 访问令牌,就无法找到有关用户的任何信息。 编辑:不用担心令牌过期,FB SDK 会为您处理。即它将由 SDK 自动刷新。 Here:

    Facebook 的官方 SDK 为您管理令牌的生命周期。什么时候 使用 iOS、Android 或我们的 JavaScript SDK,SDK 将处理 确保令牌在过期之前被刷新。

    网络上的访问令牌通常有大约两个小时的生命周期,但 需要时会自动刷新。如果你想使用 访问更长寿的网络应用程序的令牌,尤其是服务器端,你 需要生成一个长期存在的令牌。通常是长期存在的令牌 持续约 60 天。

    【讨论】:

    • 我明白了。因此,如果我在用户注册我的应用程序的那一刻存储了一个 Facebook 访问令牌 - 我可以在需要时(数周)继续重复使用它,而不必担心再次刷新它(当然,除非用户已经卸载了应用程序)?
    • @JackAlexander,是的。那是对的。再也不用担心刷新访问令牌了。
    • 很高兴听到!感谢您的帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-16
    • 2011-10-14
    相关资源
    最近更新 更多