经过很好的旧研究和开发后,我发现了一种通过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'
累积访问令牌三种不同的HTTP请求的API图形的记录位置信息Facebook的数据库可以要求获得必要的信息,以检查用户是否确实有后最近的通知。
好友请求可以通过以下HTTP请求到图形API来访问:
https://graph.facebook.com/me/friendrequests?limit=0&access_token=$accessToken
$AccessToken
与所述权限的有效访问令牌如上所述。
这将响应一个JSON数据响应,可以处理该响应以找到unread_count
。
这与消息和一般通知相同。
的消息unread_count
要求:一般通知unseen_count
https://graph.facebook.com/me/inbox?limit=0&access_token=$accessToken
请求:
https://graph.facebook.com/me/notifications?limit=0&access_token=$accessToken
'限制= 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"
}
}
在PHP json_decode
可以被用于处理JSON响应和累积的原始“UNREAD_COUNT”。
大多数用户从获得的消息中获取现有的unread_count,这意味着要测试用户是否有任何最近的通知存在,必须测试更改。这可以通过读取一个值,然后读取相同的值然后进行比较来完成。如果第二次阅读增加,则用户有新的消息通知!