Я еще не мог понять, как использовать C2DM с oAuth 2.0, но вот что я пробовал. Надеюсь, это может помочь кому-то решить подобную проблему
Я нашел полезный ресурс по адресу http://aleksmaus.blogspot.com/2012/01/oauth2-with-google-c2dm-push.html Но когда я попытался отправить сообщение с помощью C2DM через OAuth 2.0, это не сработало, в то время как с ClientLogin все получилось. .
Вот как я сделал с консолью и веб-браузером (я знаю, вы спрашивали о реализации PHP, но я надеюсь, что это также может быть полезно для вас)
Вход клиента: (успешно)
получил токен авторизации от:
$ 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
И отправил сообщение C2DM следующим образом:
$ 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
Затем мое приложение успешно получило сообщение C2DM
oAuth 2.0: (ошибка)
получил учетные данные аутентификации oAuth 2.0 из веб-браузера, перейдя по 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: https://code.google.com/apis/console/. )
И отправил так:
$ 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
Затем получил ответ об ошибке 401 :(
Есть ли кто-нибудь, кто может указать, что я сделал что-то не так?
Изменить
Я нашел предложение AC2DM в настоящее время является API в лабораториях в письме, которое вы могли получить от Google при регистрации C2DM. И Политика прекращения поддержки ClientLogin не распространяется на версии, функции и функции, помеченные как экспериментальные. . Я не уверен, но думаю, что именно поэтому наши коды не работали.
Конечно, я надеюсь, что ClientLogin также устарел и скоро будет заменен на OAuth 2.0.
person
Joon Hong
schedule
04.05.2012