Перейти к содержанию
Fire Monkey от А до Я
  • 0

FPushService.DeviceTokenValue = nil Что делать?


Антон Емельянов

Вопрос

Опубликовано (изменено)

Приложение не даёт DeviceToken...  ,  (DeviceID есть)
FDeviceToken := FPushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken];

Тест пример реализован по статье нашего замечательного модератора
http://blog.rzaripov.kz/2017/02/firebase-android-ios-2.html

Используется:
Компиляция SDK Android 5.1
Среда-разработки Delphi XE 10.2 

Пожалуйста запустите проект на своей версии Delphi..
Посмотрите будет  сгенерирован ТОКЕН или нет.. 
в случае удачи ,  напишите какая у вас версия Дельфи..

Исходник-проекта:  https://drive.google.com/open?id=1mCPvYYd0tXBALt-J_ymVuzChj_TtztC0
Только APK: https://drive.google.com/open?id=1x8q4RyVylpGOMjcQYjlvFxFBSQaYs7NL 


Помогите люди добрые :unsure:
За помощь и консультацию отблагодарю..
 

где токен.png

Изменено пользователем Антон Емельянов
  • Ответы 52
  • Создана
  • Последний ответ

Лучшие авторы в вопросе

Рекомендуемые сообщения

  • 0
Опубликовано
Только что, Антон Емельянов сказал:

Так понял. А какой apikey должен быть ?  Уточни пожалуйста - из моих скриншотов

Он вообще не из Firebase Он из

image.png.3b4ddf484bad9970dd5c16259156f131.png

Также создаешь там проект, подключаешь API нужные. В твоем случае GCM

  • 0
Опубликовано
2 минуты назад, Антон Емельянов сказал:

да я вчера делал акаунт.. Это оно?
Здесь в  библиотеке  нет  GCM   .. поиск не даёт результата

234234.png

image.thumb.png.ece574d4ef7a3215c69a73e5f751fb38.pngа это?

  • 0
Опубликовано
7 минут назад, Антон Емельянов сказал:

Ключ создал. немного не понял про ограничения.. нужно ставить или нет.. 
Если да. то где нужно выполнить эту команду.. в какой консоли. (=)) тёмный лес для меня..)

02.png

01.png

выбери без ограничений пока. и ключ забирай вставляй в проект в ембу

image.png.02bd944ee210c2c71be4497731b61c3c.png

  • 0
Опубликовано

Что то тут вы сами себя запутали. Все просто (через жопу конечно с появлением Firebase, но ничего не поделаешь, у американцев вслед за датой-задом-наперед и имперской системой исчисления, все остальное тоже немного наперекосяк) :

1. Идете в https://console.firebase.google.com/ , нажимаете "Добавить проект", произвольное, понятное вам название проекта, страна. Нажимаем сохранить.

2. Попадаем на https://console.firebase.google.com/project/test005-e3e15/overview, красочные квадратики и разные перделки-свистелки, вверху страницы нажимаем "Добавьте Fiebase в свое приложение на Андроид". В открывшемся окне вводите Название пакета (В предыдущих сообщения вам показывали где оно), остальное не надо, нажимайте сохранить. Вам предложат скачать файл google-services.json, он вам нафик не нужен, это только для андроид студии, Эмбаркадера про это еще дочитала документацию.

3. Далее нужно найти на странице малюсенькое колесико, нажать на него, Настройки, вверху Cloud Messaging, вот на этой странице есть все что вам нужно. Скриншот прилагаю.

Ключ сервера - для отправки пушей с вашего сервера.

Идентификатор отправителя - для получения Токенов в вашем андроид приложении.

Всякий бред в консоли разработчика (типа Подключения идентификатора отправителя ) игнорируйте, это индусские аутсорсеры пишут, с ними потеряна связь несколько лет назад из за наводнения в Индийском океане, но коммитить код они не перестали).

Вот и все.

P.S. Имейте ввиду, что пушсообщения могут начать приходить не сразу, у них притормаживает слегка и после добавления проекта часов 10-20 может ничего не работать. Токены начинаю выдаваться сразу.

 

Снимок.PNG

  • 0
Опубликовано (изменено)

Так вот какраз проблема в том что не выдаются токены..
всё сделано по вашей инструкции.. и по инструкции модератора..
но не выдаются токены..

 

apikey.png

Screenshot_2018-02-27-12-43-10.png

clip.png

Изменено пользователем Антон Емельянов
  • 0
Опубликовано
1 минуту назад, Антон Емельянов сказал:

Так вот какраз проблема в том что не выдаются токены

Clip2net_180227130005.png

Из этого скрина вам нужен только Пункт 4. Пункты 2 и 3 никак не повлияют. Пункт 3 испольнять не вздумайте, не зачем ваш СЕРВЕРНЫЙ ключ светить в приложении. Это из другой оперы ключ.

  • 0
Опубликовано
39 минут назад, FREEFAR сказал:

выбери без ограничений пока. и ключ забирай вставляй в проект в ембу

image.png.02bd944ee210c2c71be4497731b61c3c.png

Так пробовал - токенов всёравно нет =(((((((((((((
вводил это в  параметры проекта .результата нет.
уже запарился

  • 0
Опубликовано (изменено)

Какбы суть в том что не выдаются токены..
Ктонибудь знает последовательность действий какие делает программа для получения токена..??
можете написать?!.. Так как  ДевайсАйди   выдаётся нормально..

Screenshot_2018-02-27-12-43-10.png

Изменено пользователем Антон Емельянов
  • 0
Опубликовано
15 минут назад, Антон Емельянов сказал:

то есть ключ сервера вообще ненужно пихать в apikey ?

Это вообще разные вещи, туда ничего пихать не нужно вообще.  Но если очень хочется, то это ключь ПРИЛОЖЕНИЯ из GooglePlayConsole

  • 0
Опубликовано

Скачал ваше тестовое приложение.

Во первых в манифесте добавьте разрешение на получение

<%uses-permission%>
    <!-- FCM push notifications permission -->
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

Во вторых чтобы не было каши из кода, просто используйте готовый модуль для пуш оповещений, я его публиковал уже здесь, искать лень, закину еще разок.

 

Использование элементарное:

1. В Uses добавьте DW.PushClient и возможно понадобиться System.PushNotification (а может и нет).

FPushClient : TPushClient;

Код:

procedure TFormMain.InitPush;
begin
{$IFDEF ANDROID}
  if FSetting.GUID.IsEmpty then
    Exit;
  if Not Assigned(FPushClient) then
    FPushClient := TPushClient.Create
  else
    FPushClient.Active:=False;
  FPushClient.GCMAppID := ConstGCMAppID;
  FPushClient.ServerKey := '';
  FPushClient.BundleID := '';
  FPushClient.UseSandbox := Debug; // Change this to False for production use!
  FPushClient.OnChange := PushClientChangeHandler;
  FPushClient.OnReceiveNotification := PushClientReceiveNotificationHandler;
  try
    FPushClient.Active:=True;
  except
  end;
{$ENDIF ANDROID}
end;

А PushClientChangeHandler вот:

procedure TFormMain.PushClientChangeHandler(Sender: TObject; AChange: TPushService.TChanges);
begin
  if TPushService.TChange.DeviceToken in AChange then
  begin
    HDevicePushParams.DeviceID:=FPushClient.DeviceID;
    HDevicePushParams.DeviceToken:=FPushClient.DeviceToken;
    GetHTTP(MetodMinerProRegisterFCM);
  end;
end;

GetHTTP(MetodMinerProRegisterFCM); - это отправка токена на свой сервер, замените на свое. К примеру в Memo для начала.

PushClient.zip

  • 0
Опубликовано

Эм.. ничего непонятно :unsure:.. тут куски кода..
1. что такое  "MetodMinerProRegisterFCM" в  GetHTTP(MetodMinerProRegisterFCM)
2. где процедура PushClientReceiveNotificationHandler
3. не определяется   HDevicePushParams в  HDevicePushParams.DeviceID:=FPushClient.DeviceID;


Пришлите  рабочий  архив с проектом - простая форма  и кнопка получить токен...  будем сильно благодарны

  • 0
Опубликовано
46 минут назад, Антон Емельянов сказал:

Эм.. ничего непонятно :unsure:.. тут куски кода..
1. что такое  "MetodMinerProRegisterFCM" в  GetHTTP(MetodMinerProRegisterFCM)
2. где процедура PushClientReceiveNotificationHandler
3. не определяется   HDevicePushParams в  HDevicePushParams.DeviceID:=FPushClient.DeviceID;


Пришлите  рабочий  архив с проектом - простая форма  и кнопка получить токен...  будем сильно благодарны

Вообще то я приложил к сообщению архив. Если бы удосужились его скачать и открыть, то обнаружили кроме готовой библиотеки для работы с пушами еще и демо-проект. 

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...