因此,我们正在构建的操作的一部分使用“帐户登录助手”意图调用,以便我们的意图可以向用户发送电子邮件。奇怪的发现是,当使用实际的Google Home Mini设备进行测试时,即使对于现有的Google登录帐户,Google Assistant的响应都是如果用户说“不同意”,即为响应。在其他表面上则不同。在Google的Actions的Web控制台上,在我的iPhone上以及在队友的Android设备上进行的测试都成功了,并且可以按预期进行。
在实现中,我们将首先检查帐户登录是否存在,然后再调用意图时继续进行自己的自定义响应。
bool SignInAccountExists = PayloadHandlingUtil.CheckIdToken(commonModel);
if (SignInAccountExists)
{
// custom fulfillment code
commonModel.Response.Payload = ExpectUserResponse(); // sets the UserResponse to true in the response API thrown back to Dialogflow
}
else
{
commonModel.Response.Paylod = SignInHelper("Create Google Sign In Account") // invokes the Google Sign-In Intent Helper
}
奇怪的是,即使“帐户登录”检查器为true,它仍会以某种方式输入“帐户登录助手”意图的调用(该请求应征求用户的同意,政策条款等,并具有我们尚未分别针对用户的是或否发言配置的响应),应该将其跳过。但这并没有征求用户同意,而是做出响应,就好像用户对允许Google访问个人数据说“不”(即“好,没问题。请注意,这意味着您将无法将您的帐户与{project name}一起使用。如果您改变主意,则可以随时返回并登录。”)
但是,对于新帐户(我们将Google帐户取消链接到项目并调用该意图),它会成功返回。
有什么想法吗?我曾尝试在Google支持页面上的“操作”中记录支持票,但这已经是一天了,还没有得到任何回应。