检查用户是否安装了我的Facebook应用程序

时间:2016-04-02 21:11:30

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

我的网站使用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 userIds。 因此,如果我可以做以下事情,那将是理想的:

  

/ GET appinstalled&安培;用户ID = USERID

最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

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

  

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

  

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