サーバーアプリとしてpythonを使用して、メッセージをGCMサーバーに送信し、登録されたAndroidデバイスで受信します。メッセージ ID を持つ GCM サーバーから成功しています。
Android モバイルでは、arg1
in onMessage()
function でデータを受信していますがarg1
、from
&には 2 つのキーしかありませんcollapse_key
。
以下のJavaコードでは、from
key にはLongInt
値 & message
is が含まれていますnull
。
JavaコードまたはPythonコードに欠けているものを誰か教えてもらえますか?
ここに私のJavaコードがあります:
@Override
protected void onMessage(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
String keys="";
for (String key : arg1.getExtras().keySet())
keys+=key+"||";
String mess = arg1.getExtras().getString("from");
String mess1 = arg1.getExtras().getString("message");
}
Python コード:
def SelectAction(request,client_id):
if request.method == 'GET':
message = request.GET.get('message','')
if not message:
return Error(message = "Argument Missing.")
registration= Registration.objects.get(registeredUser = user)
values = {}
values['registration_id'] = registration.appId
values['data.message'] = message
param = urllib.urlencode(values)
req = urllib2.Request("https://android.googleapis.com/gcm/send", param)
req.add_header( 'Content-Type' , 'application/x-www-form-urlencoded;charset=UTF-8' )
req.add_header( 'Authorization' , 'key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
response = urllib2.urlopen(req)
reply = {}
if response.read().split('=')[0] == 'id':
reply['error'] = '0'
else:
reply['error'] = '1'
return HttpResponse(json.dumps(reply), mimetype="application/javascript")
else:
return Error()