Google Cloud Scheduler - HTTP-заголовки не соблюдаются

Я пытаюсь отправить push-сообщение в свое приложение с помощью 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 Несанкционированный. После выдачи команды:

gcloud beta scheduler jobs describe PUSH

Я не получаю эти заголовки обратно:

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'

1 ответ

Решение

Первый вопрос о теле:

тело:eyJ0byI6Ii90b3BpY3MvYWxsnByaW9yaXR5IjoRGV2aWNlcyIsIiaGlnaCIsImRhdGEiOnsic3VjY2VzcyI6Im9rIn19 <--- Это странно

Это кодировка base64

{\"К \":\"/ темы /allDevices\",\"приоритет \": \ "низкой \", \ "данных \":{\"Успех \": \ "ОК \"}}

Google берет ваш --message-body и кодировать его в base64,

Далее по поводу вопроса заголовка. У вас есть несколько ошибок в ваших "--headers".

--headers = "Авторизация: ключ =AUTHKEY

Вы пропустили кавычку после AUTHKEY, Я предполагаю, что эта проблема - просто ошибка редактирования, создавая вопрос. (Обратите внимание, я не мог понять, как включить символы меньше и больше, чем в этот ответ).

Тем не менее, синтаксис для --headers неправильно. --headers надеется KEY=VALUEне KEY:VALUE, В этом примере KEY является Authorization и VALUE является key=AUTHKEY,

--headers="Authorization=key=AUTHKEY"
Другие вопросы по тегам