我一直在开发Google主页上的操作。实施帮助程序意图以访问用户名并通过电子邮件发送时,所有实现的这些内容都会登录到帮助程序意图中。现在,如何在不要求登录的情况下检查用户是否已经登录。
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.');
},
};
这里
conv.ask(new SignIn());
将触发登录帮助器意图。在再次要求登录之前,如何检查用户是否已经登录。我对
有相同的问题权限帮助者意图
如何检查用户是否已授予权限,而不是每次用户调用操作时都询问权限。
答案 0 :(得分:2)
这取决于您使用的是哪个登录后端,但是对于所有后续请求(本次会话和下一个会话),以下两个都是正确的:
如果您使用自己的OAuth服务器,则会收到一个可以在conv.user.access.token
中接收到的身份验证令牌。您可以使用OAuth服务器的过程进行验证,并根据此令牌确定用户。
如果您正在使用Google登录助手作为助手,则您将在{中收到一个ID令牌(在conv.user.profile.token
中)和该用户的个人资料信息(包括他们的Google ID) {1}}。
权限也不一样。您每次都需要请求名称和位置的许可。但是,如果使用他们的名字,则可以将其存储在conv.user.profile.payload
中,以后将保留它。但是,如果他们在移动设备上应答,则位置可能会更改,因此您每次都需要请求。