Я пытаюсь разрешить пользователю моего действия Google отменить связь своего аккаунта с помощью голоса (например, произнесение "unlink"). При этом им будет предложено повторно связать свою учетную запись при повторном использовании действия.
Я попытался вернуть код состояния 401, но я получаю сообщение об ошибке «Не удается установить заголовки после их отправки» в журналах. Приведенная ниже функция срабатывает, когда пользователь говорит «unlink».
const functions = require('firebase-functions');
const {WebhookClient} = require('dialogflow-fulfillment');
const {SignIn} = require('actions-on-google');
process.env.DEBUG = 'dialogflow:*'; // Enable lib debugging statements
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const agent = new WebhookClient({request: request, response: response});
var accessToken = request.body.originalDetectIntentRequest.payload.user.accessToken;
oauth2Client.setCredentials({
access_token: accessToken
});
function welcome(agent) {
const conv = agent.conv();
conv.ask(new SignIn('To get your account details'));
agent.add(conv);
}
function signInCheck(agent) {
const conv = agent.conv();
const granted = conv.arguments.get('SIGN_IN').status === 'OK';
if(granted){
oauth2Client.setCredentials({
access_token: accessToken
});
agent.add(`Welcome.`);
}
}
function unlinkAccount(agent) {
agent.add(`OK. I unlinked your account.`);
response.status(401).send("I unlinked your account.");
return;
}
});