2017-06-26 3 views
0

Ich benutze Python für Amazon SNS für die Veröffentlichung Push-Benachrichtigungen.Amazon SNS veröffentlichen Push notificaitons

data = { "GCM" : {"data": {"message": "dummy" }}} 
    jsonData = json.dumps(data)   

    self.client.publish(TargetArn=targetArn, 
     Message= jsonData, 
     MessageStructure='json') 

Der folgende Fehler wird angezeigt.

Invalid parameter: JSON must contain an entry for 'default' or 'GCM'. 

Versucht, es als Zeichenfolge und verschiedene Formate zu senden. Aber das funktioniert nicht. Was ist falsch an der Veröffentlichung?

+0

Die [boto3 Dokumentation] (https://boto3.readthedocs.io/en/latest/reference/services/sns.html#SNS.Client.publish) sagt: „Wenn Sie für verschiedene Nachrichten senden möchten Setzen Sie für jedes Transportprotokoll den Wert des Parameters MessageStructure auf json und verwenden Sie ein JSON-Objekt für den Parameter Message. " Sie senden jedoch nur einen Nachrichtentyp. Warum verwenden Sie die JSON-Version? Haben Sie versucht, eine String-Nachricht mit einem GCM 'targetARN' zu senden? –

+0

String wird nicht funktionieren es zeigt undefined: undefined in Push-Benachrichtigung. Selbst wenn ich die Konsole verwende, wenn ich einen Rohtyp verwende, wird es nicht funktionieren. Nur mit json arbeiten. – garg10may

Antwort

0

Die von pushlish benötigte json struccutre musste \ speziell entkommen lassen. Unten arbeitete für mich. Es ist wichtig, einen Standardwert zu haben, und der Wert GCM sollte wieder ein JSON-Objekt sein.

GCM_data = { 'data' : { 'message' : 'dummy'}} 

data = { "default" : "test", 
     "GCM": json.dumps(GCM_data) 
     } 
jsonData = json.dumps(data) 
Verwandte Themen