Hej,
Om du är i stockholm så kommer jag ha en kort dragning om c2dm i nästa vecka på gtug. Kom gärna föbi om du kan så kan vi dela lite erfarenhet.
Vad som hjälpte mig att komma igång var att göra det så enkelt som möjligt.
Jag antar att du har signat upp för en invite redan. Dubbelkolla gärna att du fyllt i formuläret korrekt för jag lyckades med att skriva mitt username istället för email under role account. Det här gav mig också 401. Finns även rapporter om att c2dm inte fungerar med google apps konton om du har registrerat ett sådant som role account.
Antar även att du har implementerat den kod som behövs till Android för att få tag på ett registration id. Tänk på att den email du registrerar med där måste vara samma som du satte för role account. Det har dock inget att göra med vilket konto man är inloggad med på telefonen.
Efter det borde följande curl script ge dig möjlighet att skicka meddelanden.
Det här ger tillbaka en auth token;
Kod:
curl https://www.google.com/accounts/ClientLogin \
-d Email=ACCOUNT_EMAIL -d Passwd=PASSWORD \
-d accountType=HOSTED_OR_GOOGLE \
-d source=Google-cURL-Example \
-d service=ac2dm
Responsen ser ut så här, ngt kortat;
Kod:
SID=DQAAA....
LSID=DQAAA....
Auth=DQAAAJsAA...
Här tar du värdet från Auth och använder i curl scriptet nedan för att skicka ett meddelande under AUTH_TOKEN. REGISTRATION_ID ersätter du med det registration id du fick från androiden.
Kod:
curl https://android.apis.google.com/c2dm/send \
-d "registration_id=REGISTRATION_ID&collapse_key=foo&data.key1=bar&delay_while_idle=1" \
-H "Authorization: GoogleLogin auth=AUTH_TOKEN"