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

问题描述:

我的网站使用Facebook应用程序向其用户发送通知。检查用户是否已安装我的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用户标识。 因此这将是理想的,如果我可以做类似如下:

/获取appinstalled &的userid = USERID

会是怎样去了解它的最好方法?

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

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

而且

在Web*问令牌往往有约两小时的寿命,但在需要时 会自动更新。如果你想使用 访问令牌来获得更长寿命的web应用,尤其是服务器端,你需要生成一个长寿命的令牌。一个长期的令牌通常是 持续约60天。

+1

我明白了。 因此,如果我在用户注册到我的应用程序时存储了Facebook访问令牌 - 只要我需要(几周),我就可以继续重用它,而不用担心再次刷新它(除非用户已经卸载了应用程式)? –

+0

@JackAlexander,是的。那是对的。不用担心刷新访问令牌。 –

+1

好听!谢谢你的帮助 :) –