Push notification 谷歌操作推送通知的用户Id

Push notification 谷歌操作推送通知的用户Id,push-notification,dialogflow-es,actions-on-google,google-api-java-client,Push Notification,Dialogflow Es,Actions On Google,Google Api Java Client,我尝试为我的谷歌助手应用程序发送推送通知。 我使用了来自google开发者网站的sendNotification代码: 我正在编写Java代码。 一切正常,希望获得正确的用户id。 当我硬编码我的用户时,它可以工作,但是如何在代码中获得用户id呢 我尝试了以下代码: Argument arg_userId = request.getArgument(ConstantsKt.ARG_UPDATES_USER_ID); 字符串userId=request.getUser().getUserId()

我尝试为我的谷歌助手应用程序发送推送通知。 我使用了来自google开发者网站的sendNotification代码:

我正在编写Java代码。 一切正常,希望获得正确的用户id。 当我硬编码我的用户时,它可以工作,但是如何在代码中获得用户id呢

我尝试了以下代码:

Argument arg_userId = request.getArgument(ConstantsKt.ARG_UPDATES_USER_ID);
字符串userId=request.getUser().getUserId()

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


-->相同的例外情况

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

  • 附加到用户对象的ID不可用,可能不可用
  • 这不是你想要的身份证
  • 在用户访问的响应中,该响应包括您应该获取并存储的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();
    

    好吧,我不知道我怎么会错过这个。。。谢谢你,现在可以用了!很容易错过
    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();