谷歌云消息推送通知

16

我可以使用Google Chrome上的 POSTMAN客户端来发送有效载荷消息以测试GCM服务器吗?如果可以,需要发送哪些头部和URL参数。

3个回答

24

可以的。

1. 使用JSON负载发送通知

URL: https://android.googleapis.com/gcm/send

Headers:

  • Authorization: key=<your-api-key>
  • Content-Type: application/json

Body(点击“原始”选项卡):

{
  "collapse_key": "score_update",
  "time_to_live": 108,
  "delay_while_idle": true,
  "data": {
    "score": "4x8",
    "time": "15:16.2342"
  },
  "registration_ids":["4", "8", "15", "16", "23", "42"]
}

注意:registration_ids是唯一必填字段,其他字段均为可选。

2. 以纯文本负载发送通知

URL:https://android.googleapis.com/gcm/send

头信息:

  • Authorization:key=<your-api-key>
  • Content-Type:application/x-www-form-urlencoded;charset=UTF-8

正文(点击“x-www-form-urlencoded”选项卡):

collapse_key=score_update
time_to_live=108
delay_while_idle=1
data.score=4x8
data.time=15:16.2342
registration_id=42

注意:registration_id是唯一必需的字段,其他所有字段都是可选的。


来源:https://developer.android.com/google/gcm/http.html


5
好的!我刚刚浪费了两个小时,试图弄清楚为什么你的答案对我不起作用(401未经授权错误),直到我意识到Authorization标题需要具有值key=ABC...,而不只是ABC...。也许这能帮助别人——现在运作得很好。 - Mete
嗨..我尝试使用JSON和表单格式作为有效载荷进行测试..我收到了推送通知,但是我的event.data始终为空,有什么想法如何传递数据吗? - mariomol
这里的time_to_live参数仅设置为108秒,我认为有点低。 - mtkale

5

仅供记录和补充@Alexandru Rosianu的优秀回答,GCM端点已经改变,建议使用新的端点。以下是官方文档中的一个示例:

认证

为了发送消息,应用服务器发出POST请求。例如:

https://gcm-http.googleapis.com/gcm/send

一个消息请求由两个部分组成:HTTP头和HTTP正文。
HTTP头必须包含以下内容:
- Authorization: key=YOUR_API_KEY - Content-Type: application/json, 用于JSON格式;application/x-www-form-urlencoded;charset=UTF-8,用于纯文本。如果省略了Content-Type,则假定格式为纯文本。
例如:
Content-Type:application/json
Authorization:key=YOUR_API_KEY

{
  "notification": {
      "title": "Portugal vs. Denmark",
      "text": "5 to 1"
  },
  "to" : "bk3RNwTe3H0:CI2k_H..."
}

HTTP请求体的内容取决于您使用的是JSON还是纯文本。请参见服务器参考文档,了解JSON或纯文本消息可以包含哪些参数。
使用Curl的示例:
# curl --header "Authorization: key=YOUR_API_KEY" \
       --header Content-Type:"application/json" \
       https://gcm-http.googleapis.com/gcm/send \
       -d "{\"notification\": { \"title\": \"Portugal vs. Denmark\"," \
          "\"text\": \"5 to 1\" }, \"to\" : \"bk3RNwTe3H0:CI2k_H...\" }"

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接