未收到来自 Pub/Sub 的正确订阅消息

Not Receiving Proper Subscription Messages from Pub/Sub

当我收到来自 Google Pub/Sub 的实时通知时,我正在尝试从 Google 检索订阅信息。 Google Pub/Sub 以这种格式向我发送订阅令牌:

{"message":{"data":"REALLY LONG STRING","messageId":"468103560112704","message_id":"468103560112704","publishTime":"2019-03-18T17:19:01.444Z","publish_time":"2019-03-18T17:19:01.444Z"},"subscription":"my/pubsub/subscriptions/path"}

我不认为这是订阅令牌应该到达的格式,当我将它发送到 Google 以使用 HTTP GET 命令检索信息时,我什么也得不到,不错误,没有数据。我认为这只是一条通用消息。我会认为我做的每件事都是正确的,因为当我希望在测试期间收到消息时,我实际上收到了消息,我只是无法对它们做任何有用的事情。关于如何将这些转换为真实消息的任何想法???

这个问题花了很长时间才弄清楚,结果证明解决方案非常简单。令我惊讶的是,两个星期以来,Google 上没有人能为我找到这个问题的答案。事实证明,这是 Pub/Sub 消息的正确格式。我从 PubSub 收到的 JSON 消息的格式与我根据 Google Play 文档所期望的格式完全不同,基本上只有一个 "data" 字段看起来像令牌,但事实并非如此。实际上,我不得不深入研究 PubSub 文档,并在 "data" 字段上发现了一个晦涩的注释——它是一个 base64 编码的字符串。如果你解码 "data" 字段,瞧!你会得到一个 JSON 字符串,其中包含你需要查询的订阅 purchaseToken Google 播放订阅信息。

所以这个JSON消息里面有一个JSON消息,但是是base64编码的,你只需要解码它就可以得到里面预期的宝藏。