Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actions on google 强制用户重新链接其帐户_Actions On Google_Google Home_Dialogflow Es_Api Ai - Fatal编程技术网

Actions on google 强制用户重新链接其帐户

Actions on google 强制用户重新链接其帐户,actions-on-google,google-home,dialogflow-es,api-ai,Actions On Google,Google Home,Dialogflow Es,Api Ai,解释我的问题的非常简单的用例:给定我的应用程序要求一些交互的pin码。现在用户给了我三次错误的pin码。然后,我想重置他的访问权限并强制他重新链接他的帐户。我可以在我的内部数据库中很容易地做到这一点,但我需要一种方法告诉谷歌,他目前使用的令牌不再有效。否则,谷歌助手拒绝向我发送现在被拒绝的令牌 更新2018-03-01:使用新的内置意图/事件,我还尝试通过followupEvent属性发送事件中的actions\u intent\u SIGN\u,但这只会导致google assistant使用

解释我的问题的非常简单的用例:给定我的应用程序要求一些交互的pin码。现在用户给了我三次错误的pin码。然后,我想重置他的访问权限并强制他重新链接他的帐户。我可以在我的内部数据库中很容易地做到这一点,但我需要一种方法告诉谷歌,他目前使用的令牌不再有效。否则,谷歌助手拒绝向我发送现在被拒绝的令牌

更新2018-03-01:使用新的内置意图/事件,我还尝试通过followupEvent属性发送事件中的actions\u intent\u SIGN\u,但这只会导致google assistant使用google\u assistant调用我的api,并使用旧的oauth令牌表示欢迎。。而不是重新启动登录工作流

原职

我有一个带有dialogflow的google助手应用程序,它强制用户登录使用我的应用程序。最初的oauth工作流工作正常,我在所有api调用中都得到了令牌

现在,我想强制用户在某些情况下重新运行帐户链接工作流。为此,我从内部数据库中删除oauth令牌,并将此响应准确地发送给用户,如果您正在使用sdk,则响应应等于app.askForSignIn调用:

但这不起作用。助手不会告诉用户重新运行oauth链接工作流,也不会删除存储的oauth令牌。它甚至不使用刷新令牌来获取新的访问令牌

此外,模拟器没有使用我的响应的speech属性,而是回答说抱歉,我没有得到任何响应。-虽然我的模拟器配置为说德语


我还试图省略一些可能不需要的参数,比如contextOut属性。这会导致不同于的请求,但也不会给出所需的结果。

针对同一问题,如果您希望删除存储的DF令牌,建议我发送401响应。DF没有隐含的撤销令牌意图。

遗憾的是,Dialogflow似乎没有用状态401错误响应重置令牌

谷歌公开了一个用于撤销访问和刷新令牌的API。 为此,您必须发送以下请求 https://accounts.google.com/o/oauth2/revoke?token={token}


编辑:似乎您只需让Dialogflow重置其状态。只需继续在Dialogflow控制台上进行编辑就可以清除访问令牌。

您是否发送了一个响应,表明您有一个坏令牌?@NickFelker那么我必须发送什么样的响应?我在文件中找不到任何与此相关的信息。这里唯一要说明的是发送actions.intent.SIGN_以启动帐户链接工作流,这就是我尝试的。您是否发送带有“无效代码”或“过期代码”文本的400?ie.@NickFelker您正在描述我的oauth端点的响应,是吗?问题是我的oauth端点根本没有被重新触发。但在您的回复之后,我还试图从dialogflow webhook发送一个400响应,其中包含“无效代码”——这只会导致我的google actions模拟器出现验证错误。所以问题仍然是:我如何告诉GoogleAssistant获取新的oauth令牌/重新启动帐户链接?这是一个有趣的用例。不幸的是,我不确定答案。叶,这似乎现在起作用了!:-但在2017年11月对我们不起作用。我试图用这个撤销我的访问令牌,但我一直收到无效的\u令牌响应。我通过conv.user.raw.accessToken提供我的accessToken,这在conv json中是可用的。我做错了什么?