检查用户是否已安装我的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天。
我明白了。 因此,如果我在用户注册到我的应用程序时存储了Facebook访问令牌 - 只要我需要(几周),我就可以继续重用它,而不用担心再次刷新它(除非用户已经卸载了应用程式)? –
@JackAlexander,是的。那是对的。不用担心刷新访问令牌。 –
好听!谢谢你的帮助 :) –