2

由于谷歌禁止新的华为设备使用GMS,我的应用程序的华为手机用户经常抱怨他们无法收到通知消息。所以我最近开始使用HUAWEI Push Kit。整合过程顺利。我已经完成了整合,并在华为应用市场上发布了我的应用。用户现在可以接收通知消息。

但是现在我发现了以下与推送数据有关的问题:

使用 FCM,我可以使用 BigQuery 进一步分析消息推送数据,例如发送消息的数量和接收的消息数量。例如,我可以执行以下语句来收集应用程序发送消息数的统计数据:

SELECT app_name, COUNT(1)
FROM `project ID.firebase_messaging.data`
WHERE
_PARTITIONTIME = TIMESTAMP('date as YYYY-MM-DD')
AND event = 'MESSAGE_ACCEPTED'
AND message_id! =''
GROUP BY 1;

看了HUAWEI Push Kit文档,没有找到类似BigQuery的功能。

但是,我找到了消息回执,它也可以用于收集统计数据。因此,我开发了一个收据 API,并在 Push Kit 控制台上进行了配置。经过测试,我现在可以收到推送数据了。

现在,当我计划发布我的应用程序时,我需要验证调用者,因为消息接收 API 在公共网络上是公开可用的。如何验证调用方以防止恶意 API 调用?

4

1 回答 1

2

HUAWEI Push Kit的消息回执功能可以设置用户名和密码进行身份验证。您可以使用此功能来防止恶意 API 调用。过程如下:

  1. 在HUAWEI Push Kit控制台配置消息回执时设置用户名和密码。
  2. 华为调用您的收据接口时,会在 HTTP 头中添加X-HUAWEI-CALLBACK-ID参数。参数值由以下部分组成:

一个。timestamp:系统的UTC时间戳。

湾。nonce:随机UUID。

C。value: 待加密字符串(由 的值timestamp、 的值nonce和回调用户名组成)使用HMAC-SHA256算法中设置的密码加密,然后使用Base64编码后最终得到的字符串。

例如:

timestamp=1563105451261;nonce=a07bfa17-6d82-4b53-a9a2-07cfef5ceef1;value=E4YeOsnMtHZ6592U8B9S37238E+Hwtjfrmpf8AQXF+c=
  1. 接收请求时,接收接口可以获取HTTP头中X-HUAWEI-CALLBACK-ID的值来判断调用者是否合法。

欲了解更多信息,请访问消息回执

于 2020-06-23T08:34:35.980 回答