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

Check if user has my Facebook app installed

我的网站使用 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

解决此问题的最佳方法是什么?

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

Facebook's official SDKs manage the lifetime of tokens for you. When using iOS, Android or our JavaScript SDK, the SDK will handle making sure that tokens are refreshed before they expire.

Access tokens on the web often have a lifetime of about two hours, but will automatically be refreshed when required. If you want to use access tokens for longer-lived web apps, especially server side, you need to generate a long-lived token. A long-lived token generally lasts about 60 days.