Google Cloud Scheduler - HTTP-заголовки не соблюдаются - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь отправить 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 Ответ

0 голосов
/ 08 ноября 2018

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

корпус: eyJ0byI6Ii90b3BpY3MvYWxsnByaW9yaXR5IjoRGV2aWNlcyIsIiaGlnaCIsImRhdGEiOnsic3VjY2VzcyI6Im9rIn19 <--- Это странно </p>

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

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

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

Далее в отношении проблемы с заголовком. У вас есть несколько ошибок в ваших «--headers».

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

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

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

--headers="Authorization=key=AUTHKEY"
...