Идентификатор пользователя для push-уведомлений о действиях для Google - PullRequest
1 голос
/ 21 июня 2019

Я пытаюсь сделать push-уведомление для моего приложения-помощника Google. Я использовал код отправки уведомления с сайта разработчика Google: https://developers.google.com/actions/assistant/updates/notifications

Я кодирую Java. Все работает, ожидайте получения правильного идентификатора пользователя. Когда я жестко кодирую своего пользователя, это работает, но как мне получить идентификатор пользователя в коде?

Я попробовал следующий код:

Argument arg_userId = request.getArgument(ConstantsKt.ARG_UPDATES_USER_ID);

String userId = request.getUser (). GetUserId ();

-> Я получаю «java.lang.reflect.InvocationTargetException»

String userId = arg_userId.getRawText();

-> То же исключение

1 Ответ

2 голосов
/ 21 июня 2019

Существует две проблемы с подходом, который вы используете для получения идентификатора уведомления:

  1. Идентификатор, прикрепленный к объекту пользователя, устарел и, вероятно, недоступен.
  2. В любом случае это не тот идентификатор, который вам нужен.

В ответе, когда пользователь завершает уведомление , этот ответ включает в себя идентификатор, который вы должны получить и сохранить,Поскольку вы используете Java, код может выглядеть примерно так:

ResponseBuilder responseBuilder = getResponseBuilder(request);

Argument permission = request.getArgument(ConstantsKt.ARG_PERMISSION);
if (permission != null) {
  Argument userId = request.getArgument(ConstantsKt.ARG_UPDATES_USER_ID);
  // code to save intent and userID in your db
  responseBuilder.add("Ok, I'll start alerting you.").endConversation();
} else {
  responseBuilder.add("Ok, I won't alert you.");
}
return responseBuilder.build();
...