Intereting Posts
Как изменить текст TextView на изменение текста EditText? Как замаскировать EditText, чтобы показать формат даты dd / mm / yyyy Одновременное использование обеих передних и задних камер Отсутствующие API и auth> Зарегистрированные приложения в облачной консоли Google / Как получить ключ GCM API? Как выполнить пользовательскую реализацию Retrofit2.Call <T> Проблема с рендерингом для Android с Intellij 13.1.3 Найдите ярлык тома SD-карты на Android Android setUserVisibleHint никогда не вызывается? Getlastknownlocation всегда возвращает null после того, как я переустановил файл apk через eclipse Установить положение мыши в программном обеспечении Использование класса приложений Android для сохранения данных Android Marshmallow – изменение состояния прав Как предотвратить закрытие диалогового окна при нажатии кнопки Использование анимации Android L для переключения между действиями Android: EditText в Dialog не подтягивает мягкую клавиатуру

Ошибка c2dm 401 при отправке сообщений после приема идентификатора и токена аутентификации

Я видел много похожих вопросов, но не нашел хорошего ответа, несмотря на то, что некоторые из них были приняты. Я зарегистрировался на C2DM. Я получил подтверждение по электронной почте. Затем я написал несколько простых приложений для регистрации на C2DM. Я получаю идентификатор (проверенный на эмуляторе и на реальном устройстве). Затем я получил токен авторизации (с curl) для моего письма, которое я использовал для регистрации C2DM (тот же адрес электронной почты, который я использую в приложении для получения идентификатора).
Когда я пытаюсь сделать push (также с curl), я получаю ошибку 401 (например, токен аутентификации ошибочен).

Я читал много учебников, и у меня заканчиваются идеи.

Solutions Collecting From Web of "Ошибка c2dm 401 при отправке сообщений после приема идентификатора и токена аутентификации"

Позвольте мне попробовать (с завитой только):

Сначала мы подаем заявку на токен auth:

curl.exe -v -k https://www.google.com/accounts/ClientLogin -d Email=xyz@gmail.com -d Passwd=secret -d accountType=GOOGLE -d source=your.registered.domain -d service=ac2dm

В результате вы получаете токен аутентификации:

< 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):

Обратите внимание, что ответ «Автоответчик» находится в результате с первой буквой в верхнем регистре: «Auth = XXX»!

Теперь мы используем результат для следующего запроса, но с строчной буквой:
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

И это работает! Но вы получаете ошибку 401, если используете auth, как в первом ответе (верхний регистр A в «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

Таким образом, «auth» запроса 2 чувствителен к регистру. Я думаю, что это ошибка, в которую входят 50% пользователей. Надеюсь, это поможет.

Может быть, это проблема?

http://groups.google.com/group/vogella/browse_thread/thread/95865344e6d2c734

Исходно, параметр «отправитель», который вы указываете на устройстве Android, должен быть тем же адресом электронной почты, который зарегистрирован как отправитель (серверный).