我正在使用新的 Action on Google Java API构建一个应用程序。据我了解,在 Alexa 中处理帐户链接时,初始流程(当JSON 请求中的userId为null时)应重定向到登录表单以征得用户同意:
@ForIntent("RawText")
public ActionResponse launchRequestHandler(ActionRequest request) {
String userId = request.getAppRequest().getUser().getUserId();
String queryText = request.getWebhookRequest().getQueryResult().getQueryText();
String speech = null;
ResponseBuilder responseBuilder = getResponseBuilder(request);
if (isBlank(userId) || GREETING.equalsIgnoreCase(queryText)) {
speech = "I've sent a link to your Google Assistant app that will get you started and set up in just several simple steps.";
responseBuilder.add(
new SignIn()
.setContext(speech));
//...
return responseBuilder.build();
然而,在 AoG 模拟器中进行测试时,我没有看到任何重定向正在执行。我看到以下错误:
我的帐户链接设置:
其中授权 URL 重定向到本地模拟身份验证服务,该服务应该显示登录表单。它是可访问的(通过localhost
和通过 ssh 隧道,在这种情况下由serveo.net
反向代理提供)。为什么谷歌不把我重定向到那里?
有人可以指导我如何在帐户链接流程中进行此初始握手,我在哪里可以看到从网络挂钩发送的登录意图应该触发的表单?
正如错误消息所暗示的那样,我宁愿不使用我的手机,因为我在 AoG 模拟器中测试的帐户与我在手机上的用户 ID 不同。
使用是什么意思Simulator as a Speaker
?我的设置中缺少什么?
是否有另一个谷歌应用程序可以更好地模拟物理设备,类似于Alexa 的模拟器?