【发布时间】:2017-06-20 19:16:47
【问题描述】:
我正在尝试对 API.AI 进行编程以显示来自 Google 的搜索结果,使用 Google 上的 Actions 以卡片的形式使用 webhook 实现服务。 我已经部署了演示应用程序“factsaboutgoogle”,但它给出了静态响应。 我想编写可以使用谷歌搜索引擎返回动态响应的 index.js 代码。
谁能帮我们写代码?
这是我现在使用的代码:
process.env.DEBUG = 'actions-on-google:*';
const App = require('actions-on-google').ApiAiApp;
// [START YourAction]
exports.videoplayer = (request, response) => {
const app = new App({request, response});
console.log('Request headers: ' + JSON.stringify(request.headers));
console.log('Request body: ' + JSON.stringify(request.body));
// Fulfill action business logic
function responseHandler (app) {
var querystring = require('querystring');
var https = require('https');
var host = 'https : //www.googleapis.com/customsearch/v1?key=*****';
var apiKey = '*****';
var sessionId = null;
var deckId = '';
function performRequest(endpoint, method, data, success) {
var dataString = JSON.stringify(data);
var headers = {};
if (method == 'GET') {
endpoint += '?' + querystring.stringify(data);
}
else {
headers = {
'Content-Type': 'application/json',
'Content-Length': dataString.length
};
}
var options = {
host: host,
path: endpoint,
method: method,
headers: headers
};
var req = https.request(options, function(res) {
res.setEncoding('utf-8');
var responseString = '';
res.on('data', function(data) {
responseString += data;
});
res.on('end', function() {
console.log(responseString);
var responseObject = JSON.parse(responseString);
success(responseObject);
});
});
req.write(dataString);
req.end();
}
}
function basicCard (app) {
app.ask(app.buildRichResponse()
// Create a basic card and add it to the rich response
.addSimpleResponse('')
.addBasicCard(app.buildBasicCard(dataString)
.setTitle('your query result')
.addButton('Read more')
.setImage('https://example.google.com/42.png', 'Image alternate text')
));
}
const actionMap = new Map();
actionMap.set('videoplayer', responseHandler);
app.handleRequest(actionMap);
};
【问题讨论】:
-
您是在问如何进行搜索吗?或者如何将搜索结果变成卡片? StackOverflow 上的良好做法是展示您迄今为止所做的工作并解释哪些似乎不起作用。
-
两者。我正在尝试在聊天机器人中以卡片的形式显示搜索结果。
-
您能否展示您当前拥有但无法正常工作的代码并描述您得到了什么?
标签: node.js google-search google-search-api dialogflow-es actions-on-google