Android GCM SENDER_ID, як його отримати?


80

Я намагаюся перейти на, GCMі у мене виникає проблема з тим, що SENDER_IDмені потрібно надати. Я використовую демонстраційний проект від google. У цьому проекті мені потрібно, якщо я це добре розумію, надати SENDER_IDпрограму у файлі CommonUtilities.java.

Наданий мною SENDER_ID є ключем API, який я зареєстрував на https://code.google.com/apis/console/, і має такий вигляд: AIzaSyAxxxxxxx_xxxxxxxxxxxnoGZw(загалом 40 символів).

Використовуючи цей рядок, коли SENDER_IDя потрапляю на "BroadcastReceiver mHandleMessageReceiver", з'являється повідомлення про помилку: З GCM: помилка (INVALID_SENDER). .

Де помилка? Рядок, який я надаю, не є SENDER_ID?

Дякую.


Ось покроковий процес отримання ідентифікатора відправника GCM та ключа API. - ajaxtown.com/article/…
Абхішек Саха

Відповіді:


182

Ні, SENDER_ID - це ідентифікатор проекту, який ви зареєстрували на консолі Google API, він повинен мати числовий рядок. наприклад, на URI вашого браузера, ви повинні побачити це:

https://code.google.com/apis/console/#project:4815162342

Ідентифікатор відправника - 4815162342

Оновлена ​​відповідь:

Google не оновив свої документи повністю. Вищевказана відповідь стара і базується на цій документації, і, схоже, вона все ще не оновлена.

Згідно з оновленими документами Google , схоже, що номер проекту на консолі Google API використовується як ІДЕНТИФІКАТОР


1
Я зробив кілька експериментів - я не зміг знайти повну відповідь в Інтернеті, і врешті-решт виявив, що sender_id - це електронний лист, який використовується для реєстрації в службі. Якщо ви хочете, щоб ваша відповідь отримала позначку як прийняту, відредагуйте її.
Zelter Ady

3
Цельтер, використовуючи адресу електронної пошти як sender_id, є застарілим способом реєстрації C2DM. Дивіться тут: developer.android.com/guide/google/gcm/c2dm.html , у розділі «Зміни клієнта»: Міграція проста! Єдина зміна, необхідна у програмі, - це заміна облікового запису електронної пошти, переданого в параметрі відправника у намірі реєстрації, на ідентифікатор проекту, створений під час реєстрації на нову послугу.
azgolfer

2
Дякую azgolfer. Як міграція може очікувати, що хтось це знатиме? Це майже так, ніби Google намагається зробити це якомога складніше.
Eurig Jones

3
привіт @azgolfer ти можеш оновити свою відповідь на основі моєї відповіді нижче? stackoverflow.com/a/27020029/231768 GCM змінився з використовуваного ідентифікатора проекту, і вони використовують номер проекту
Адам

2
SENDER_ID можна знайти у файлі google-services.json (файл конфігурації) як "номер_проекту": "12456789".
Ерді

57

Я зробив для останньої консолі API Google .

Як дістатися SenderId:

Кроки :

  1. Відкрийте консоль API Google
  2. Створити проект
  3. Клацніть на піктограму меню зліва
  4. Натисніть на хмарну платформу Google
  5. Ви б SenderIdтам отримали форму

Довідково:

введіть тут опис зображення

Сподіваюся, це допоможе вам.


1
ДЯКУЮ, щоб я хотів, щоб я знайшов це раніше :)
срібло

Як примітка, ніколи не слід цензурувати, перевизначаючи щось, замість цього видаляйте цю частину, виділяючи її за допомогою інструменту box. І ваш URI, і Projekt-ID можна прочитати будь-кому, особливо тому, хто має зловмисні наміри.
Сподіваємось,

23

Перейдіть на сторінку консолі API Google . Виберіть проект, який ви використовуєте, зі спадного меню ліворуч. Виберіть Огляд, і тепер Ви зможете побачити Вас project number. Це SENDER_IDви повинні використовувати

Інший спосіб отримати номер проекту - отримати значення "project" із вашої URL-адреси. Ваша URL-адреса має бути такою: " https://code.google.com/apis/console/b/0/#project:886025556782 ". Тут номер проекту "886025556782". цей номер - SENDER_ID


Що робити, якщо моя URL-адреса з проекту не відображає жодного ні? насправді моя URL-адреса така: " console.developers.google.com/project/Project ID"
Приянк,

Приянк, див. Мою відповідь. Google нещодавно змінив це. stackoverflow.com/a/27020029/231768
Адам

9

Оновлена ​​відповідь станом на листопад 2014 року, ЯКЩО ВИ СТВОРИЛИ ПРОЕКТ API нещодавно .

Перш за все, правильно, вам слід абсолютно перейти на консоль розробників Google і знайти проект, для якого увімкнено GCM. Переглядаючи розділ Огляд (ліва панель навігації), ви побачите ідентифікатор проекту та номер проекту, перелічені праворуч. Ідентифікатор проекту для мене зазнав невдачі (саме це призвело мене сюди), але коли я спробував номер проекту, зараз я можу правильно зареєструвати своїх клієнтів.

Зауважте, що це інакше, оскільки Google нещодавно змінив спосіб призначення кодів проекту. У жовтні я створив проект і отримав цифровий ідентифікатор проекту, який, як я вважаю, буде справно працювати. Але той, який я створив сьогодні, отримав двословне і ідентифікатор номера (як Hamster-Party-420) та числовий номер проекту. URL-адреса мого проекту містить Hamster-Party-420, а номер проекту видно лише на екрані Огляд.


6

Ще одна оновлена ​​відповідь з трохи більше пояснень для розгублених (.. як я був). (З належною заслугою @azgolfer, @PankajAndroid та @Adam)

1- Якщо ви створюєте проект на https://console.developers.google.com , ви можете побачити дві речі "ІДЕНТИФІКАТ ПРОЕКТУ" та "НОМЕР ПРОЕКТУ" в огляді проекту. Ідентифікатор проекту вже не числовий, а буквено-цифровий, як master-xxxxx-1234 . Номер проекту - це 11-значне число, наприклад 123456789100.

проект dashbaord

2- Навіть при перегляді посилання на браузер ви можете знайти його як: https: // console.developers.google.com / project / master-xxxxx-1234

Тож master-xxxxx-1234 - це SENDER_ID (в деяких місцях це ідентифікатор проекту)? НІ.

Ви повинні використовувати номер проекту як ідентифікатор проекту в GCM.

3- Де ви можете перевірити, чи використовується ідентифікатор проекту як ідентифікатор проекту?

Про API Dashbaord. (url: https://code.google.com/apis/console/b/0/?noredirect#project:12345678900 - де 12345678900 - це номер вашого проекту на інформаційній панелі проекту.

панель інструментів google api -

РЕЗЮМЕ: Ідентифікатор проекту на інформаційній панелі проекту та інформаційній панелі API відрізняються. Номер проекту в інформаційній панелі проекту використовується як ідентифікатор проекту на інформаційній панелі API, а ідентифікатор проекту в інформаційній панелі проекту - як назва проекту на інформаційній панелі API. Отже, номер проекту, показаний на інформаційній панелі проекту, коли ми створюємо проект у консолі розробника, використовується як GENDER_ID у GCM.


4

Перейдіть до «Інформаційної панелі» в останній версії консолі розробників, натисніть стрілку спадного меню під «Проект: Потужність черепахи», і ви побачите номер проекту прямо там! Використовуйте це як свій SENDER_ID

(фальшивий проект, тому навіть не пробуйте = P)

введіть тут опис зображення



1

Ми годинами намагалися це зрозуміти. Проблема полягала в тому, що наш маніфест Android не містив ідентифікатора відправника!



-3

Ідентифікатор SENDER_ID, який ви використовуєте, є нічим іншим, як ключем авторизації. ви можете знайти SENDER_ID на URL-адресі сторінок консолі API API Google

https://code.google.com/apis/console/#project:8543162367

тут 8543162367 буде вашим SENDER_ID, а також ідентифікатор проекту більше не є цифровим, а лише цифровим або лише буквеним, але його положення таке ж, як показано мною

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.