You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Google Sign-In集成问题:登录完成后Get Signin意图输出未显示

解决Google Sign-In后「Get Signin」意图输出不显示的问题

嘿,我来帮你排查这个问题!从你贴的代码和描述来看,登录成功后「Get Signin」意图的内容没正常显示,大概率是代码里的小错误或者配置问题导致的,咱们一步步来解决:

首先,修复Suggestions的构造错误

你写的new Suggestions(['QR code'], ['code'])是错的哦!Suggestions组件的构造函数只接受一个字符串数组作为参数,你现在传了两个数组,会导致组件初始化失败,进而影响整个响应的显示。正确写法应该是:

conv.ask(new Suggestions(['QR code', 'code']));

然后,确认Dialogflow里的「Get Signin」意图配置

别忽略了平台配置的问题,要确保:

  • 这个意图的Events列表里已经添加了actions_intent_SIGN_IN(这是Google Sign-In完成后触发的系统事件)
  • 意图的Fulfillment开关已经打开,并且正确关联到你的Webhook服务

再加个保险:校验用户信息的获取

虽然登录状态显示OK,但有时候conv.user.profile.payload可能因为权限或者平台返回的问题为空,咱们可以加个判断避免出错:

app.intent("Get Signin", (conv, params, signin) => { 
  if (signin.status === 'OK') { 
    const payload = conv.user.profile.payload; 
    // 先确认payload和name字段存在
    if (payload && payload.name) {
      conv.ask(`我已获取您的账户信息${payload.name},您希望通过何种方式进行兑换? `);
      conv.ask(new Suggestions(['QR code', 'code']));
    } else {
      conv.ask('已成功登录,但暂时无法获取您的账户信息,请稍后再试');
    }
  } else { 
    conv.close("请登录后再进行兑换操作"); 
  } 
})

最后,检查Webhook的响应格式

如果上面的调整都没用,那就看看你的Webhook返回的JSON是否符合Actions on Google的规范。比如v2版本的响应里,fulfillmentMessages要包含正确的文本和建议内容,格式不能错。

按照这些步骤调整后,应该就能正常显示「Get Signin」意图的输出啦!

内容的提问来源于stack exchange,提问作者Laxmi Anusri Patti

火山引擎 最新活动