我正在尝试从我的rails服务器向Android设备发送gcm组通知。但不幸的是,我无法让它发挥作用。但是,如果我尝试将相同的消息发送到单个注册ID,它可以正常工作。所以我用curl检查了它 -
curl -vvv -X POST --header "Content-Type: application/json" --header
"project_id: MyProjectid" --header "Authorization: key=Mykey" --data @-
"https://android.googleapis.com/gcm/send" << EOF
{
"to": **"Reg_id"**,
"data": {}
}
EOF
上面给了我200 OK
。但是如果我用notification_key替换Reg_id
,我得到200 NotRegistered
并且消息未被传递。所以我做了一些研究,发现当我发送gcm消息时,notification_key自行取消注册。
下面是我做出这个假设的简单场景 - 如果我使用curl创建一个新的 notification_key ,它会给我 notification_key 。如果我使用相同的 notification_key_name 创建新密钥,则会获得notification_key already exists
。但是一旦我使用相同的notification_key发送通知,我就会得到200 Not registered error
。然后,如果我尝试使用之前的 notification_key_name 创建新的 notification_key ,我会收到一个新的 notification_key 。
这对我来说似乎很奇怪。有没有人遇到同样的问题或找到解决方案?