Tag: 操作上,谷歌

刷新Google API令牌以保持用户login状态

我正在开发一个使用Google日历的Google操作应用程序。 在用户第一次互动开始时,系统会提示他们链接其Google帐户以访问日历。 但是对于几乎每个将来的交互,用户都必须再次进行authentication。 我的代码从用户数据获取访问令牌如下。 我不确定是否有办法将刷新令牌添加到凭据中。 我已经看到你应该在其他答案的请求中包含"access_type": "offline" ,但是我不确定将它放在我的代码中。 任何帮助将不胜感激! const googleAuth = require('google-auth-library'); function getAuth(app) { var accessToken = app.getUser().accessToken; var clientId = CLIENT_ID; var clientSecret = CLIENT_SECRET; var redirectUrl = 'https://oauth-redirect.googleusercontent.com/r/my_app_name'; var auth = new googleAuth(); var oauth2Client = new auth.OAuth2(clientId, clientSecret, redirectUrl); var token = { "access_token": accessToken, "refresh_token": "", "access_type": "offline", //Not […]

AWS + API网关+ Lambda + Node.js操作对谷歌ApiAiApp

我想在API网关调用的Lambda函数中使用action-on-google包和ApiAiApp类。 所有的pipe道工作正常,我可以返回一个手动构build的响应罚款,但我真的更喜欢在我的Node.js Lambda函数中使用ApiAiApp对象。 我也可以使用Firebase来正常工作。 请原谅我对这种发展的无知,但是没有一种search方式似乎给了我需要的解决scheme。 Firebase的入口点是 exports.myTip = functions.https.onRequest((request, response) => { 我可以将请求+响应传递给ApiAiApp构造函数,而且都很好 就像在Lambda中一样 exports.handler = function(event, context, callback) 如何将事件转换为请求+响应,以便在lambda函数中调用相同的ApiAppApp构造函数? TL:DR – 我如何在Lambda函数中调用对ApiAiApp构造函数的操作?

如果select不是紧接着传送带,select意图不会被触发

当我们展示旋转木马时,我正面临着听用户select的问题。 我们使用askWithCarousel和dialogFlow,并使用actions_intent_option事件监听轮播项目的点击。 当向用户显示旋转木马时,如果麦克风从用户那里得到一个随机的input(与我们的旋转木马项目的同义词不匹配),助手开始听用户input,然后用户点击任何旋转木马项目或说任何的同义词, actions_intent_option事件不会被解雇。 如果这个交互紧接着显示轮播,它就可以正常工作。 否则,它将采用轮播标题作为用户input并解决不同的意图。 因为这个,无法得到传送带物品的ID。 有没有办法禁用麦克风或发出actions_intent_option即使当用户稍后点击旋转木马项目。 请帮助这个stream程。

从api.ai获取参数/参数值

我现在坚持在我的index.js获取用户input(用户说)的问题。 例如,用户说:请告诉我{animals}是否可以在温度{x}到{y}之间生活。 我想得到确切的价值(string)为什么动物,X和Y,以便我可以检查是否有可能在我自己的服务器。 我想知道如何做,因为实体需要映射到一些确切的关键值,如果我注释这三个参数到一些实体类别。 ApiAiApp的方法非常有限: https : //developers.google.com/actions/reference/nodejs/ApiAiApp 从我的angular度来看,这里列举的方法都不起作用。 请帮忙!

app.getDeviceLocation()总是返回null

我已经成功地要求用户获得粗糙设备的权限,并且在用户允许权限之后,我检查了app.isPermissionGranted()从false转换为true,但是每当我使用app.getDeviceLocation() ,它都会返回null 。 当我询问“我在哪里?”时,我testing的Google Home会给出正确的位置。 这是我的代码片段: function askDate(app) { console.log('Permission:', app.isPermissionGranted()); //says true if (app.isPermissionGranted()) { //this always says null console.log('User device location:', JSON.stringify(app.getDeviceLocation())); app.ask('thanks for the location!'); } else { app.tell('You need to allow me to access your location to give an accurate recommendation'); } } function askForLocPermission(app) { console.log('Permission:', app.isPermissionGranted()); //says false let […]

在助手应用程序的Firebase函数中获取Node.js中的Google用户标识

我正在开始使用Google云端平台。 我正在开发一个Android应用程序,收集信息并将其存储在Firebase应用程序中。 这个想法是,谷歌助理function可以查询这些信息并将其读回,例如 OK Google,和Simons App交谈,告诉我上次XYZ完成的时间 但是,我得到的问题是让这个多用户。 我有Android应用程序收集数据并将其放入云中。 我正在使用FirebaseUser并在Android应用程序中使用getUid()来获取唯一的id,它是一个28个字符的string,如uVHkia8RRgWD8GGPVvW4AUDUK2 。 我已经在Google上设置了Actions,通过Web Fulfillment将它吸引到API.AI中,并获得了Node.js在Firebase函数中的工作。 不幸的是,我回来的UserID看起来更像: HTge48H0CF2FC5jJQCigFBc-UCQ 问题是这个UserID和我从Filebase User得到的UserUID不一样。 我在用着 let ApiAiApp = require('actions-on-google').ApiAiApp; const app = new ApiAiApp({request: request, response: response}); 和 const userId = app.getUser().userId; 我错过了什么? 我看到OAuth2,帐户链接等参考。我不完全确定在这一点上做什么。 我现在需要做的就是从FirebaseUser.getUID()获取User UID ,以便在Firebase数据库中查看数据。 我认为其余的应该是直截了当的。 从助理链接到Firebase有大量的文档,但在实际身份validation方面很less。 到目前为止,我还没有设置stream程,如授权码stream程,隐式stream程,或者根据API.AI和Fulfillment选项设置用户名/密码。 坦率地说,林不知道什么需要去哪里在这一点上。