检查新的Facebook用户通知

时间:2014-03-26 14:28:20

标签: facebook-graph-api facebook-php-sdk facebook-requests

我尝试通过PHP创建设置,如果我通过Facebook SDK获得最近的Facebook通知,我可以访问该设置。我希望能够查看最近的朋友请求,消息和一般通知。

我已成为开发人员并已下载并初始化了Facebook SDK。从这里我可以访问Graph API,在那里我可以获取有关用户的信息。由此我可以经常检查用户信息。我已经进行了广泛的研究,但发现我是否有最近通过API图表发送的通知我无法找到?

我还阅读了实时更新,其中当一段数据发生变化时会触发回拨URL,这可能是Facebook通知。这会更有效率,但是我在使用它时遇到了麻烦。

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

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

1 个答案:

答案 0 :(得分:1)

经过良好的旧研究和开发,我找到了一种通过Facebook API图表检查我最近的Facebook通知的多种方式。

最初的问题考虑到了多功能性,可以通过简单的HTTP请求进行检查,而无需累积会话cookie等任何内容。这允许我在远程php脚本中使用CURL请求,该脚本由小型Arduino服务器访问以获取信息。如果出现新通知,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的三个不同的HTTP请求(即Facebook的信息数据库)获取必要的信息以检查用户是否有最近的通知。

可以通过以下对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

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

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

{
   "data": [

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

在PHP json_decode中可用于处理JSON响应并累积原始' unread_count'。

大多数用户从获取的消息中获得了现有的unread_count,这意味着要测试用户是否有最近的通知,必须测试更改。这可以通过读取值然后稍后读取相同值然后进行比较来完成。如果第二次阅读增加,则用户有新的消息通知!