node.js - 我如何接收(而不是发送)来自 nodejs 的推送通知?

标签 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": {}
}

最佳答案

TL;DR: 是的,您可以,但是如果您不知道收到这些通知,您将不会做太多事情。

您必须查看应用程序如何注册通知。 有了文档后,请查找如何注册通知。

顺便说一句:Airbnb 在浏览器中有推送通知?如果是这样,我会对它更感兴趣,而不是开始调试 android 应用程序。

如果没有官方 API,您将进行大量的逆向工程,但 90% 的逆向工程都在那里使用 is FCM来自谷歌。

在一个公开的英文网站上,他们只写了关于 OAuth2 和更新的内容,但在 my language我有:

What can I do with the Airbnb API?

The API allows teams of developers to conduct secure authorization on new and existing Airbnb accounts. Users of your application will have the option of receiving push notifications about content updates, rates and availability. Once Airbnb guests have booked your offer, we will pass on your booking information and details, allowing applications to create your own data flow and deliver amazing experiences to our common guests.

值得从安装手机模拟器开始,监听所有网络通信并安装应用程序。但这并不容易,因为您必须对 HTTPS 通信进行中间人攻击。

选择是反编译官方应用,在代码中搜索。

首先,您需要发现用于通知的服务。如果这是 FCM,则过程如下所示:

  • application generates标识应用程序实例的唯一 token

  • 应用程序将此 token 发送给 Airbnb 以注册接收通知

而且我在 Node 中找不到可以订阅通知的客户端,但这里是 Web (JS) ,所以这是可能的。 (再次逆向工程)

有一些关于XMPP server receive upstream messages , 但最好在 C++ 中编写小应用程序/Unity这将通过 websocket 进一步将通知转发给 Node。

关于node.js - 我如何接收(而不是发送)来自 nodejs 的推送通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54769660/

相关文章:

node.js - 使用 Mongoose 在投影中包含 Mongodb "_id"字段

javascript - 在 Node.js 中,setTimeout 可靠吗?

node.js - 谷歌云客户端库 key 文件作为 json

node.js - 如何使用 exceljs 从 Promise 中返回文档

node.js - Lodash 和 Graceful-fs

python - Node.js 使用 chrome-remote-interface 进行抓取

javascript - 如何让我的辅助函数首先加载? (Meteor、Node 框架)

javascript - 从 Sequelize 和 Node.js 中的 CSV 中删除重复值

node.js - 启用“use-strict”但在 Node 中不起作用

node.js - 编写服务端实现RPC客户端Node.js