Я пытался отправлять уведомления на устройства, установленные моим приложением. Я выполнил инструкции в this Tutorial и успешно получил идентификатор регистрации моих устройств. Тем не менее, я всегда получаю ответ 401, когда я отправляю свои запросы с моего сервера.Получение статуса ошибки 401 с сервера GCM
<HTML>
<HEAD>
<TITLE>Unauthorized</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Unauthorized</H1>
<H2>Error 401</H2>
</BODY>
</HTML>
Это, как я тестировал:
api_key=MY_API_KEY
curl --header "Authorization: key=$api_key" --header Content-Type:"application/json" https://android.googleapis.com/gcm/send -d "{\"registration_ids\":[\"MY_REGISTRATION_ID\"]}"
Я заменил MY_API_KEY с номером проекта на Cloud Console, и MY_REGISTRATION_ID с результатом Android кода gcm = GoogleCloudMessaging.getInstance(context); gcm.register(SENDER_ID);
я знаю есть пара людей, отправляющих одну и ту же проблему, и я читал их все часы. К сожалению, их решения не исправили мою ошибку. Пожалуйста, помогите, и извините за моего бедного английского.
Это странно, где я могу найти ключ браузера? –
В консоли google api зайдите в свой проект. Затем слева вы найдете API & Auth> Registered Apps. Там вы должны найти ключ браузера – allemattio
Кажется, что вы используете «Веб-приложение» вместо «Android» в поле платформы на Cloud Console. И ключ API сервера, и ключ API браузера работают для меня без ошибки 401. Тем не менее, я еще не получил никаких уведомлений. Вот ответ от GCM '{" multicast_id ": 462805484xxxxxxxxx," success ": 1," failure ": 0," canonical_ids ": 0," results ": [{" message_id ":" 0: 1386725281760300% fde9a7xxxxxxxxx "}] } ' –