我正在构建一个网络应用程序,以帮助Airbnb房东管理他们的列表。我希望收到有关新预订的通知,而不是每隔几分钟对Airbnb的服务器进行一次ping操作。 Airbnb的API没有将数据推送到服务器的方法,因此我认为也许可以模拟设备并接收推送通知。
是否可以在nodejs中模拟设备并接收推送通知?
好像iOS应用在以下地址注册了推送通知:
https://api.airbnb.com/v2/air_notification_devices
具有以下数据:
{
"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": {}
}
答案 0 :(得分:9)
TL; DR:是的,可以,但是如果没有收到这些通知的知识,您将无能为力。
您必须寻找应用程序如何注册通知。 在拥有文档之后,请查找如何注册通知。
顺便说一句: Airbnb在浏览器中有推送通知?如果是这样,那么我将比开始调试android应用程序更感兴趣。
如果没有正式的API,您将进行大量的逆向工程,但是其中90%的逆向工程都来自Google is FCM。
在一个公开的英语网站上,他们只写有关OAuth2和更新的信息,但在my language中,我有:
我可以使用Airbnb API做什么?
API允许开发人员团队对 新的和现有的Airbnb帐户。您的应用程序的用户将拥有 接收有关内容更新的推送通知 的选项, 率和可用性。一旦爱彼迎宾客预订了您的报价,我们 将传递您的预订信息和详细信息, 应用程序来创建自己的数据流并提供惊人的结果 给普通客人的体验。
从安装电话模拟器,侦听所有网络通信并安装应用程序开始是值得的。但这并不容易,因为您必须对HTTPS通信进行一次中间攻击。
该选项是反编译官方应用程序并在代码中搜索。
首先,您需要发现用于通知的服务。如果这是FCM,则过程如下所示:
用于标识应用程序实例的application generates唯一令牌
应用程序将此令牌发送到Airbnb以注册通知
我在Node上找不到可以订阅通知的客户端,但是这里是Web (JS),所以有可能。 (再次进行逆向工程)
有一些关于XMPP server receive upstream messages的内容,但是最好在C++ / Unity中编写小型应用程序,这样可以进一步例如通过websocket将通知转发给Node。