2014-03-26 38 views
0

我想通过PHP创建一个设置,我可以访问如果我有任何Facebook通知最近通过Facebook SDK通知。我希望能够检查最近的朋友请求,消息和一般通知。检查新的Facebook用户通知

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

我也读过实时更新,当一段数据发生变化时会触发回调URL,这可能是Facebook的通知。这样会更有效,但是我在处理这个问题时遇到了麻烦。

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

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

回答

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'

累积访问令牌三种不同的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,这意味着要测试用户是否有任何最近的通知存在,必须测试更改。这可以通过读取一个值,然后读取相同的值然后进行比较来完成。如果第二次阅读增加,则用户有新的消息通知!