我如何从Node.js接收(不发送)推送通知?

时间:2019-02-19 15:23:48

标签: node.js

我正在构建一个网络应用程序,以帮助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": {}
}

1 个答案:

答案 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。