gpt4 book ai didi

firebase - 如何发送推送通知 - Google 助理

转载 作者:行者123 更新时间:2023-12-04 08:54:16 26 4
gpt4 key购买 nike

   # index.js

const functions = require('firebase-functions');
const DialogflowApp = require('actions-on-google').DialogflowApp;

exports.handler = functions.https.onRequest((req, res) => {

const app = new DialogflowApp({ request: req, response: res });
console.log("Request", req);

console.log('Request Processing ');
function responseHandler(app) {
let intent = app.getIntent();
console.log("INFO Intent : ", intent);
switch (intent) {
case 'input.welcome':
console.log("INFO : UserId: ", app.getUser().userId);
app.ask("Welcome to notify Applcation")
break;

case 'finish_permission':
if (app.isPermissionGranted()) {
console.log("INFO : UserId: ", app.getUser().userId);
app.ask("Ok, I'll start alerting you");
} else {
app.ask("Ok, I won't alert you");
}
break;

case 'check_overdue_tasks':
if (app.isPermissionGranted()) {
console.log("INFO : UserId: ", app.getUser().userId);
app.ask("Ok, I'll start alerting you");
} else {
app.ask("Ok, I won't alert you");
}
break;


case 'setup_update':
app.askForUpdatePermission('check_overdue_tasks');
break;
}
}
app.handleRequest(responseHandler);

})


################################################## send ##############################################


var request = require('request')
const google = require('googleapis');
const key = require('../config/Agent33-e4a3b7e88308.json');


let notif = {
userNotification: {
title: 'Pay Parking tickets',
},
target: {
userId: 'ABwppHF74yXbA9Z1ptgyOVwwkU8p9meRgs3H51Aw6_AqQZTzUgFzdz1twy6ki1aI-CjziWJPlqSdJUdbzQ',
intent: 'check_overdue_tasks'
}
}


let jwtClient = new google.auth.JWT(
key.client_email, null, key.private_key,
['https://www.googleapis.com/auth/actions.fulfillment.conversation'],
null
);

jwtClient.authorize(function (err, tokens) {
if (err) {
console.log("ERROR on jwt CLIENT");
}
else {
console.log("Token : ", JSON.stringify(tokens) + "\n Notification Msg : " + JSON.stringify(notif));

request.post('https://actions.googleapis.com/v2/conversations:send', {
'auth': {
'bearer': tokens.access_token
},
'json': true,
'body': { 'customPushMessage': notif, 'isInSandbox': true }
}, function (err, httpResponse, body) {
console.log(httpResponse.statusCode + ': ' + httpResponse.statusMessage)
});
}
});


############################################################################################


我完全按照文档中说明的步骤操作:

https://developers.google.com/actions/assistant/updates

遇到的问题是:

问题 1:

app.askForUpdatePermission(INTENT) :未更新发送意图推送通知的权限,但表示已授予权限。
如果再次尝试执行“final_permission”意图,则表示已授予权限。

当我尝试执行时
app.isPermissionGranted() ,它返回false。

问题 2:服务器' https://actions.googleapis.com/v2/conversations:send ' 随机返回 500 或 400 错误。

我正在使用 FireBase (Spark) 的免费计划是因为这个吗?

最佳答案

确保您已设置准确 intentname喜欢 setup_update Suggestion chips. 的文本应该是准确的否则您的助手将无法识别文本。

如果您处理过使用代码,请确保为特定意图启用了 webhook。

希望您阅读并关注他们的 Action On Google文档。

在真实设备上进行测试。您将收到通知。

关于firebase - 如何发送推送通知 - Google 助理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47646817/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com