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

User-Id for Push-Notification on Actions for Google

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

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

我尝试了以下代码:

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

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

--> 我得到 "java.lang.reflect.InvocationTargetException"

String userId = arg_userId.getRawText();

--> 相同的异常

您获取通知 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();