0

我正在尝试通过 PHP 创建一个设置,如果我通过 Facebook SDK 有任何最近的 Facebook 通知,我可以访问该设置。我希望能够查看最近的好友请求、消息和一般通知。

我已经成为一名开发人员,并且已经下载并初始化了 Facebook SDK。从这里我可以访问 Graph API,我可以在其中获取有关用户的信息。由此,我可以不时地对用户信息进行检查。我进行了广泛的研究,但通过 API 图表了解我是否有任何我找不到的最新通知?

我还阅读了有关实时更新的信息,其中当数据发生更改时会触发回调 URL,这可能是 Facebook 通知。这会更有效率,但是我在处理这个问题时遇到了麻烦。

我了解这些概念并进行了研究,但是我不知道如何使用 AIP 图和实时更新来检查最近的通知并进行报告。

任何 Facebook 开发人员都可以提供帮助吗?

4

1 回答 1

1

在对旧的研究和开发进行了足够多的探索之后,我发现了一种通过 Facebook API 图检查我最近的 Facebook 通知的通用方法。

最初的问题考虑到了多功能性,可以通过简单的 HTTP 请求进行检查,而无需累积会话 cookie 之类的任何内容。这使我可以在一个小型 Arduino 服务器访问的远程 php 脚本中使用 CURL 请求来获取信息。如果出现新的通知,Arduino 服务器可以打开 LED。

我创建了一个名为 Notifier 的应用程序,成为 Facebook 的开发人员,这让我可以为用户或我创建一个名为 Access Token 的东西。这是一个很长的字符串,有效期为 60 天,允许我访问我的 Facebook 帐户信息。我通过在一小段代码中实现 Facebook SDK 来获得它,该代码允许访问有关我的通知的信息。

在用我的应用程序在 php 中实现 Facebook SDK 并通过我登录后,我可以打电话$facebook->getAccessToken();来获取它。然后可以将其保存在数据库中或硬编码以用于开发目的。最初它仅持续 60 天,但可以延长其寿命。另一种方法是让用户或我每隔一段时间登录一个 Web 应用程序。

可以在 Facebook 开发人员图形浏览器工具中获得持续一小时的调试访问令牌。这些权限如下:

'read_mailbox, manage_notifications, read_requests'

在获取访问令牌后,可以向 API Graph(Facebook 的信息数据库)请求三个不同的 HTTP 请求,以获取必要的信息来检查用户是否有最近的通知。

可以通过以下对 API 图的 HTTP 请求访问好友请求:

https://graph.facebook.com/me/friendrequests?limit=0&access_token=$accessToken

$AccessToken是具有上述权限的有效访问令牌。

这将使用 JSON 数据响应进行响应,可以对其进行处理以查找unread_count.

消息和一般通知也是如此。

消息请求unread_count

https://graph.facebook.com/me/inbox?limit=0&access_token=$accessToken

unseen_count一般通知请求:

https://graph.facebook.com/me/notifications?limit=0&access_token=$accessToken

请求中的“limit=0”意味着您实际上并不想要请求通知数据或对象。这是真的。所有 JSON 响应都以包含“unseen_count”或“unread_count”的“summary”对象响应。这就是我们想要的数据。

来自消息 HTTP 请求的 JSON 响应示例如下:

{
   "data": [

   ],
   "summary": {
      "unseen_count": 0,
      "unread_count": 16,
      "updated_time": "2014-04-08T18:30:48+0000"
   }
}

在 PHPjson_decode中可用于处理 JSON 响应并累积原始“未读计数”。

大多数用户从获取的消息中都有一个现有的 unread_count,这意味着要测试用户是否有任何最近的通知存在,必须测试更改。这可以通过读取一个值然后稍后读取相同的值然后比较来完成。如果第二次阅读增加了,那么用户就会收到一条新消息通知!

于 2014-04-11T00:06:33.287 回答