我正在尝试从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"}
我不相信这是订阅令牌应该到达的格式,当我发送给谷歌使用HTTP GET命令检索信息时,我什么都没得到,没有错误,也没有数据。我认为这只是一个普遍的信息。我认为我做的一切都是正确的,因为当我希望在测试期间得到它们时,我实际上正在收到消息,我不能对它们做任何有用的事情。有关如何将这些转换为REAL消息的任何想法???
这个花了很长时间才弄明白,解决方案结果非常简单。令我感到惊讶的是,两个星期以来,Google的任何人都无法为我找到这个问题的答案。事实证明,这是Pub / Sub消息的正确格式。我从PubSub收到的JSON消息与我基于Google Play文档所期望的格式完全不同,并且基本上只有一个看起来像令牌的“数据”字段,但事实并非如此。我实际上不得不深入研究PubSub文档,并在“数据”字段上找到了一个模糊的注释 - 它是一个base64编码的字符串。如果您解码“数据”字段,瞧!,您将获得一个包含订阅purchaseToken的JSON字符串,您需要在其中查询Google Play以获取订阅信息。
所以这个JSON消息有一个JSON消息INSIDE,但它是base64编码的,你只需要解码它就可以获得预期的内部宝藏。