Twilio SMS (WhatsApp): Отправить Местоположение - PullRequest
1 голос
/ 02 февраля 2020

Я вижу документацию по новой функции в Twilio (место отправки). Я следовал за документацией в качестве теста, но он не отображается в Whatsapp.

context.getTwilioClient().messages.create({
                from: 'whatsapp:' + context.WHATSAPP_NUMBER,
                body: "Office Location",
                persistentAction: ['geo:37.787890,-122.391664'],
                to: event.From
            }).then(message => {
                callback(null);
            }).catch(err => callback(err));

Тело «Расположение офиса» отображается в Whatsapp, но не отображается persistentAction.

Ответы [ 2 ]

1 голос
/ 02 февраля 2020

Я могу подтвердить, что это не работает. Я также попытался удалить текущую версию пакета twilio (https://www.npmjs.com/package/twilio) и вернуться к нескольким второстепенным версиям (3.38, 3.37, 3.36) и все еще не работать.

Я получил это работает с использованием twilio cli (https://www.twilio.com/docs/twilio-cli/quickstart).

Это сработало:

twilio api:core:messages:create --from whatsapp:+14155238886 --body "Twilio HQ" --persistent-action "geo:37.787890,-122.391664|375 Beale St" --to whatsapp:+15005550006

Возможно, есть что-то с библиотекой Twilio Node Helper (пакет).

0 голосов
/ 02 февраля 2020

Нашел решение:

Я создал отдельную лямбда-функцию и использую лямбда-функцию, которую я использую в Lex, для вызова этого:

//index.js

const axios = require("axios");
const dotenv = require("dotenv");
dotenv.config();

function main(params) {
    const authToken = '***';
    const authSID = '***';
    const url = 'https://api.twilio.com/2010-04-01/Accounts/ACCOUNT_SID/Messages.json';

    const messageBody = {
        Body: params.name,
        From: "whatsapp:+14155238886",
        PersistentAction: params.location,
        To: "whatsapp:" + params.phoneNumber
    };

    return new Promise((resolve, reject) => {
        axios.post(url, new URLSearchParams(messageBody), {
            auth: {
                username: authSID,
                password: authToken
            }
        }).then(response => {
            console.log(response.data.sid);
            resolve("Success")
        }, error => {
            console.log(error);
            reject(error);
        }
        );
    });
}
exports.handler = main;
...