google-cloud-platform - Google Cloud Scheduler - 不遵守 HTTP header

标签 google-cloud-platform google-cloud-scheduler

我正在尝试使用 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

我没有得到这些 header :

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

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

--headers="Authorization: key=AUTHKEY

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

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

--headers="Authorization=key=AUTHKEY"

关于google-cloud-platform - Google Cloud Scheduler - 不遵守 HTTP header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53197551/

相关文章:

go - 我如何在 Google Cloud Functions 上使用带有 Go 的子包?

firebase - 部署functions.pubsub.schedule时如何修复创建函数失败

google-cloud-platform - GCP Cloud Scheduler 为 HTTP 目标类型抛出错误

google-app-engine - 如何在受 IAP 保护时使用 App Engine HTTP 运行 Cloud Scheduler 作业

google-cloud-platform - 云调度程序结果失败,尽管 Http 请求仍在运行

python - 从 GCS 存储桶中的文件夹中删除数百万个对象

python-3.x - 在不使用显式 key 文件的情况下从 Google Cloud Function 生成 Cloud Storage 签名 URL

docker - 在 Java 程序中列出 Google Container Registry 中的图像

firebase - 如何在网络应用上使用 Google AutoML?

google-cloud-platform - 从云调度程序调用谷歌云函数时获取权限被拒绝错误