PHP SDK-如何知道Facebook用户是否在Facebook上安装并授权了我的应用程序?

PHP SDK-How to know whether or not person from Facebook has installed and authorized my app on Facebook?

我一直在我的应用程序的服务器端跟踪我的所有用户(存储他们的 Facebook ID(当然在我的应用程序的范围内)),但是因为我可以从任何使用 Facebook 的人那里找到 Facebook id site : http://findmyfbid.com/,当然这些 id 不在我的应用程序范围内,我可以获取他们的基本公开可用信息,如 id、名称等。但我需要一种方法来知道用户是否安装了我的应用程序或不是。我发现 Facebook 通知我用户没有安装我的应用程序的唯一方式是我尝试向他们发送通知。然后我从 Graph 得到这个响应:

Graph returned an error: (#200) Cannot send notifications to a user who has not installed the app Graph returned an error: 403

除了调用 post 方法和发送通知外,还有其他方法可以查明用户是否已授权并安装我的应用程序吗?

您从 findmyfbid.com 获得的 ID 是 "global/real" ID,您永远不应该 need/use 那个 ID,实际上您甚至不应该以任何方式获得它。该页面正在抓取个人资料,这在 Facebook 上是不允许的。授权后,你得到一个"App Scoped ID",你需要使用那个

无论如何,您可以在授权您的应用程序后立即将所有授权用户存储在数据库中(因为您知道他们何时这样做)。如果您想知道是否有人取消了您应用程序的授权,那么应用程序设置中有一个 "deauthorization callback" - 您可以(并且应该)从您的数据库中删除该用户。