Actions on google Google home在请求用户登录前检查登录状态
我一直在谷歌主页上开发行动。当实现helper意图访问用户名并通过电子邮件发送所有实现的内容时,请登录helper意图。现在,如何检查用户是否已登录而不要求登录Actions on google Google home在请求用户登录前检查登录状态,actions-on-google,google-home,Actions On Google,Google Home,我一直在谷歌主页上开发行动。当实现helper意图访问用户名并通过电子邮件发送所有实现的内容时,请登录helper意图。现在,如何检查用户是否已登录而不要求登录 const {SignIn} = require('actions-on-google'); module.exports = { 'ask_for_sign_in': (conv) => { conv.ask(new SignIn()); }, 'ask_for_sign_in_confirmation
const {SignIn} = require('actions-on-google');
module.exports = {
'ask_for_sign_in': (conv) => {
conv.ask(new SignIn());
},
'ask_for_sign_in_confirmation': (conv, params, signin) => {
if (signin.status !== 'OK') {
return conv.ask('You need to sign in before using the app.');
}
// const access = conv.user.access.token;
// possibly do something with access token
return conv.ask('Great! Thanks for signing in.');
},
};
这里
将触发登录助手意图。如何在要求再次登录之前检查用户是否已登录。我有同样的问题要问你
权限助手意图
如何检查用户是否已授予权限,而不是在用户每次调用操作时都请求权限。这取决于您使用的是哪个登录后端,但对于所有后续请求(在本次会话和下一次会话中),以下两个请求之一将为真:
- 如果您正在使用自己的OAuth服务器,那么您将收到一个身份验证令牌,您可以在
中接收该令牌。您可以使用OAuth服务器的过程来验证它,并基于此令牌确定用户conv.user.access.token
- 如果您正在使用Google登录助手,那么您将在
中收到一个id令牌,并在conv.user.profile.token
中收到用户的配置文件信息(包括他们的Google id)conv.user.profile.payload
权限的情况并非如此。每次都需要请求名称和位置的权限。但是,如果您使用他们的名称,您可以将其存储在
userStorage
中,并在将来保留。但是,如果他们在移动设备上应答,位置可能会发生变化,因此您每次都需要请求此信息。谢谢您的详细解释。我同意你建议的第一个选择。我使用了自己的OAuth服务器,并根据conv.user.access.token识别了用户。你们知道如何测试吗?每次成功链接后,后续的登录呼叫都会立即返回OK和accessToken。如何重置用户id或帐户链接状态?我正在使用我自己的隐式oauth链接。@BelaVizy-这是一个好问题,但最好在StackOverflow上作为一个单独的问题提问,您可以深入了解您正在做的事情的细节,我们可以提供清晰的答案。好的,在单独的问题中发布它。
conv.ask(new SignIn());