Google的操作推送通知的用户ID

时间:2019-06-20 21:41:17

标签: push-notification dialogflow actions-on-google google-api-java-client

我尝试为我的Google助手应用程序发送推送通知。 我使用了Google开发者网站上的sendNotification代码:https://developers.google.com/actions/assistant/updates/notifications

我正在编写Java。 一切正常,请期待获得正确的用户ID。 当我对用户进行硬编码时,它可以工作,但是如何在代码中获取用户ID?

我尝试了以下代码:

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

字符串userId = request.getUser()。getUserId();

->我收到“ java.lang.reflect.InvocationTargetException”

String userId = arg_userId.getRawText();

->相同的例外

1 个答案:

答案 0 :(得分:2)

获取通知ID所采用的方法存在两个问题:

  1. 附加到用户对象的ID为deprecated,并且可能不可用。
  2. 无论如何,这不是您想要的ID。

在用户finalizes the notification的响应中,该响应包含您应获取并存储的ID。由于您使用的是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();