我使用Flask为Android应用程序运行python后端服务器。我试图通过HTTP使用谷歌gcm发送消息,我得到了这样的结果。
"{\"multicast_id\":856748271326331XXXX,\"success\":0,\"failure\":1,\"canonical_ids\":0,\"results\":[{\"error\":\"MismatchSenderId\"}]}"
我非常确定我的API密钥和SENDER_ID与用户信息匹配。我在Google开发者控制台上仔细检查了SENDER_ID,它与我在Android应用程序中的内容相同。
SENDER_ID - 32421541XXXX
这是我使用的python脚本
import urllib2
import json
url = 'https://android.googleapis.com/gcm/send'
apiKey = 'XXXXXXXX2NWz5YKiWCqJYXYdbKO2QXXXXXXX' # my api key
myKey = "key=" + apiKey
regid = 'XXXXXXXXXo4wBhGqAIZGG0Ncx4Oll1Vz4eO_f9e0maGrEmM-bU-KY3BXDQhRZI54Xlh-B6m7G679uzAE0bM1MVTgOcJwpuF-hQm3Jfz4K8ROXwonaGmzg-XXXXXXXXXXXXXX'
# make header
headers = {'Content-Type': 'application/json', 'Authorization': myKey}
# make json data
data = {}
data['registration_ids'] = (regid,)
data['data'] = {'data':'i love changong'}
json_dump = json.dumps(data)
# print json.dumps(data, indent=4)
req = urllib2.Request(url, json_dump, headers)
result = urllib2.urlopen(req).read()
return json.dumps(result)
你知道为什么我会收到这个错误吗?谢谢。
答案 0 :(得分:1)
我遵循了这个答案并且有效。我应该再次通过eclipse卸载应用程序并构建应用程序。