Я пытаюсь отправить обновление о состоянии заказа после того, как пользователь отправил заказ.Я использовал действия в руководстве по транзакциям Google коды для построения моей системы.Однако сначала я получил сообщение «Не могу прочитать свойство« JWT »с неопределенным значением» и изменил свой код на const {google} = require('googleapis');
.
. Теперь я получаю «{}» в качестве ответа на консоли при запуске »файл order-update.js и не может получить уведомление.Я пробую это на мобильном устройстве.Я не уверен, что это потому, что я использую режим песочницы.
const {google} = require('googleapis');
const request = require('request');
const {OrderUpdate} = require('actions-on-google');
const key = require('<my_service_account_path>');
const jwtClient = new google.auth.JWT(
key.client_email,
null,
key.private_key,
['https://www.googleapis.com/auth/actions.fulfillment.conversation'],
null
);
jwtClient.authorize((err, tokens) => {
if (err) {
console.log(err);
return;
}
const currentTime = new Date().toISOString();
const actionOrderId = '<my_order_id>';
const orderUpdate = new OrderUpdate({
actionOrderId: actionOrderId,
orderState: {
label: 'Order has been delivered!',
state: 'FULFILLED',
},
updateTime: currentTime,
});
const bearer = 'Bearer ' + tokens.access_token;
const options = {
method: 'POST',
url: 'https://actions.googleapis.com/v2/conversations:send',
headers: {
'Authorization': bearer,
},
body: {
custom_push_message: {
order_update: orderUpdate,
},
// The line below should be removed for non-sandbox transactions.
is_in_sandbox: true,
},
json: true,
};
request.post(options, (err, httpResponse, body) => {
if (err) {
console.log(err);
return;
}
console.log(body);
});
});
В руководстве я не смог найти ответа, который должен был получить, но я считаю, что "{}" - это не ответ.Для push-уведомления ожидаемым ответом было «200: ОК».