如何从nodejs接收(而不是发送)推送通知?
我正在构建一个网络应用程序,以帮助Airbnb主机管理他们的列表。我希望收到新的预订通知,而不是每隔几分钟ping一次Airbnb的服务器。 Airbnb的API无法将数据推送到服务器,因此我想也许我可以模拟设备并接收推送通知。
这是否可以模拟设备并在nodejs中接收推送通知?
Update
看起来iOS应用程序在以下地址注册推送通知:
以下数据:
{
"app_version": "19.08",
"device_type": "iphone_gcm",
"device_id": "{{DEVICE_ID}}",
"token": "{{TOKEN}}",
"enabled": true
}
并使用以下cookie:
SRVID=mofi-production-12ab3c456-7defg_172.21.128.38:32350
并返回:
{
"air_notification_device": {
"app_version": "19.08",
"created_at": "2019-03-01T16:27:13Z",
"device_id": "{{DEVICE_ID}}",
"device_type": "iphone_gcm",
"enabled": true,
"id":{{ID}},
"locale": "en",
"token": "{{DIFFERNT_TOKEN}}",
"updated_at": "2019-03-01T16:27:13Z",
"user_id": {{USER_ID}}
},
"metadata": {}
}
回答如下:
TL; DR:是的,你可以,但是在没有知识的情况下收到这些通知你就不会做太多。
您必须查找应用程序如何注册通知。如您所知,请查看如何注册通知。
BTW:Airbnb在浏览器中有推送通知吗?如果是这样,我会比开始调试Android应用程序更感兴趣。
如果没有官方API,您将获得良好的逆向工程,但其中90%使用来自Google的is FCM。
在一个公开的英文网站上,他们只写了OAuth2和更新,但在my language我有:
我可以用Airbnb API做什么?
API允许开发团队对新的和现有的Airbnb帐户进行安全授权。您的应用程序用户可以选择接收有关内容更新,费率和可用性的推送通知。一旦Airbnb客人预订了您的优惠,我们将传递您的预订信息和详细信息,允许应用程序创建您自己的数据流并为我们的共同客人提供惊人的体验。
值得首先安装手机模拟器,监听所有网络通信并安装应用程序。但这并不容易,因为你必须在中间攻击中为HTTPS通信做一个人。
选项是反编译官方应用程序并在代码中搜索。
首先,您需要发现用于通知的服务。如果这是FCM,那么过程如下所示:
- 标识应用程序实例的application generates唯一标记
- 应用程序将此令牌发送给Airbnb以注册通知
我在Node中找不到订阅通知的客户端,但这里是Web (JS),所以它是可能的。 (再次逆向工程)
有一些关于XMPP server receive upstream messages,但更好地在C++ / Unity写小应用程序,这将进一步转发节点,例如通过websocket。