Ich habe viele ähnliche Fragen gesehen, aber keine gute Antwort, obwohl einige von ihnen akzeptiert wurden.
Ich habe mich für C2DM angemeldet. Ich habe eine Bestätigungsmail erhalten. Dann schrieb ich eine einfache App, um sich für C2DM zu registrieren. Ich bekomme die ID (versucht am Emulator und am echten Gerät). Dann habe ich das Authentifizierungs-Token (mit Curl) für meine E-Mail erhalten, das ich für die C2DM-Registrierung verwendet habe (die gleiche E-Mail, die ich in der App zum Erwerben der ID verwendet habe).
Wenn ich versuche, den Push (auch mit Curl) zu machen, bekomme ich 401 Fehler (wie der Authentifizierungs-Token ist falsch).
Ich lese viele Tutorials und mir gehen die Ideen aus.
Lass es mich versuchen (nur mit Locken):
Zuerst beantragen wir den Authentifizierungs-Token:
curl.exe -v -k https://www.google.com/accounts/ClientLogin -d [email protected] -d Passwd=secret -d accountType=GOOGLE -d source=your.registered.domain -d service=ac2dm
Im Ergebnis erhalten Sie das Authentifizierungs-Token:
< HTTP/1.1 200 OK
SID=XXX
LSID=XXX
Auth=XXX
* Connection #0 to host www.google.com left intact
* Closing connection #0
* SSLv3, TLS alert, Client hello (1):
Bitte beachten Sie, dass die Auth-Antwort im Ergebnis mit einem Großbuchstaben ersten Buchstaben: "Auth = XXX"!
ist Jetzt verwenden wir das Ergebnis für die nächste Anfrage, aber mit kleingeschriebenem Anfangsbuchstaben:
curl.exe -v -k --header "Authorization: GoogleLogin auth=XXX" https://android.apis.google.com/c2dm/send -d "registration_id=XXX" -d "data=helloooo" -d collapse_key=Z
Und das funktioniert! Aber Sie erhalten einen Fehler 401, wenn Sie die Auth wie in der ersten Antwort verwenden (Großbuchstabe A in "Auth"):
curl.exe" -v -k --header "Authorization: GoogleLogin Auth=XXX" https://android.apis.google.com/c2dm/send -d "registration_id=XXX" -d "data=helloooo" -d collapse_key=Z
Also ist die "Auth" von Anfrage 2 Groß-und Kleinschreibung. Ich denke, das ist eine Falle, in die 50% der Nutzer einsteigen. Hoffe das hilft.
Tags und Links java android android-c2dm