Aún no he podido descifrar cómo usar C2DM con oAuth 2.0, pero esto es lo que he intentado. Espero que esto puede ayudar a alguien a resolver problema similar
he encontrado un recurso que puede ser útil en http://aleksmaus.blogspot.com/2012/01/oauth2-with-google-c2dm-push.html Pero cuando traté de enviar un mensaje con C2DM a través de OAuth 2.0, no funcionó mientras que hizo un buen trabajo con ClientLogin.
Esta es la forma en que lo hice con la consola y el navegador web (lo sé, lo solicitado aplicación PHP Pero espero que esto también puede ser útil para usted.)
Ingreso de cliente: (exitoso)
tiene auth token:
$ curl -k -d "accountType=HOSTED_OR_GOOGLE&service=ac2dm&source=test-1.0&Email=[email account with @gmail.com without brace]&Passwd=[Google account password without brace]" https://www.google.com/accounts/ClientLogin
y envió el mensaje C2DM así:
$ curl -k --header "Authorization: GoogleLogin auth=[my ClientLogin auth key without brace]" -d "registration_id=[can be acquired from Android application]" --trace c2dm_trace.txt -d collapse_key=0 https://android.apis.google.com/c2dm/send
Entonces mi solicitud recibida con éxito C2DM mensaje
OAuth 2.0: (frustrada)
tiene un OAuth 2.credenciales de autenticación 0 desde el navegador web accediendo url:
https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=[can be acquired from API Access menu in your API Console]&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=https%3A%2F%2Fandroid.apis.google.com%2Fc2dm&access_type=offline
(Google API de consola: https://code.google.com/apis/console/)
Y enviado como esto:
$ curl -k -H "Authorization: Bearer [my auth key from oAuth]" --trace curl_trace.txt -d "registration_id=[an be acquired from Android application]" -d "data.message=something to talk" -d collapse_key=0 https://android.apis.google.com/c2dm/send
Luego consiguió respuesta de error 401 :(
¿Hay ¿alguien que pueda señalar lo que he hecho algo mal?
Editar
que he encontrado la sentencia "AC2DM es actualmente una API en laboratorios" en el correo que usted puede ser recibido de Google al registrarse C2DM. Y ClientLogin deprecation policy will not apply to versions, features, and functionality labeled as "experimental." No estoy seguro, pero creo que es por eso que nuestros códigos no funcionaron.
Por supuesto, espero ClientLogin también ser obsoleto y reemplazado con OAuth 2.0 pronto
miró el marco yii http://www.yiiframework.com/extension/c2dm/ – Suchi
Estoy esperando la respuesta ... +1 a la pregunta. – drulabs
@Suchi Ya estoy usando Zend framework, así que no querré agregar otro framework para esto. Aunque parece muy bueno y simple. ¿Utiliza OAuth2.0? – Doc