Google Cloud Scheduler - HTTP headers 未遵守

Google Cloud Scheduler - HTTP headers not respected

我正在尝试使用 Google Cloud Scheduler 向我的应用程序发送推送:

gcloud beta scheduler jobs create http PUSH --schedule="0 * * * *" --uri="https://fcm.googleapis.com/fcm/send" --description="desc" --headers="Authorization: key=<AUTHKEY> --http-method="POST" --message-body="{\"to\":\"/topics/allDevices\",\"priority\":\"low\",\"data\":{\"success\":\"ok\"}}"    

结果总是401 Unauthorized。发出命令后:

gcloud beta scheduler jobs describe PUSH

我没有收到这些 headers 回来:

description: desc
httpTarget:
  body: eyJ0byI6Ii90b3BpY3MvYWxsnByaW9yaXR5IjoRGV2aWNlcyIsIiaGlnaCIsImRhdGEiOnsic3VjY2VzcyI6Im9rIn19  <--- THIS IS WEIRD
  headers:
    Content-Type: application/octet-stream
    User-Agent: Google-Cloud-Scheduler
  httpMethod: POST
  uri: https://fcm.googleapis.com/fcm/send
lastAttemptTime: '2018-11-07T20:32:37.657408Z'
name: projects/..../locations/europe-west1/jobs/PUSH
retryConfig:
  maxBackoffDuration: 3600s
  maxDoublings: 16
  maxRetryDuration: 0s
  minBackoffDuration: 5s
schedule: 0 * * * *
scheduleTime: '2018-11-07T21:00:00.681498Z'
state: ENABLED
status:
  code: 16
timeZone: Etc/UTC
userUpdateTime: '2018-11-07T20:29:15Z'

关于body的第一个问题:

body:eyJ0byI6Ii90b3BpY3MvYWxsnByaW9yaXR5IjoRGV2aWNlcyIsIiaGlnaCIsImRhdGEiOnsic3VjY2VzcyI6Im9rIn19 <--- THIS IS WEIRD

这是

的base64编码

{\"to\":\"/topics/allDevices\",\"priority\":\"low\",\"data\":{\"success\":\"ok\"}}

Google 正在获取您的 --message-body 并将其编码为 base64

接下来是关于 header 的问题。您的“--headers”中有几个错误。

--headers="Authorization: key=AUTHKEY

您在 AUTHKEY 后缺少引号。我会假设这个问题只是编辑错误造成的问题。 (请注意,我不知道如何在此响应中包含 less-than 和 greater-than 字符)。

但是,--headers 的语法是错误的。 --headers 需要 KEY=VALUE,而不是 KEY:VALUE。在此示例中,KEYAuthorizationVALUEkey=AUTHKEY

--headers="Authorization=key=AUTHKEY"