Error sending file from Slack to WhatsAPp

Viewed 17

I am trying to send files from Slack to WhatsApp using Node.js. For Slack, I am using Bolt and for WhatsApp API I'm using WATI.

This is the code that retrieves the file information as soon as it is uploaded to slack. I am retrieving the file's permalink and passing it to the load function. I tried using file permalink_public it still gives the same error.

index.js

const wa = require("./wati")
const request = require('request-promise')

url = file_permalink

async function load(uri, path, number) {
    const options = {
        uri: uri,
        encoding: null,

    };
    const body = await request(options)
    try {
        await wa.sendMedia(body, path, number).then().catch(e => console.log(e))
    }
    catch (e) {
        console.log(e)
    }
}

load(url, "file.png", phone_number)

wati.js

var request = require('request');

const sendMedia = async (file, filename, senderID) => {
    var options = {
        'method': 'POST',
        'url': 'https://' + process.env.URL + '/api/v1/sendSessionFile/' + senderID,
        'headers': {
            'Authorization': process.env.API,

        },
        formData: {
            'file': {
                'value': file,
                'options': {
                    'filename': filename,
                    'contentType': null
                }
            }
        }
    };
    request(options, function (error, response) {
        if (error) throw new Error(error);
        console.log(response.body);
    });

}

Error

{"result":false,"info":"Failed to send file"}

I tried with axios as well but it throws

TypeError: Cannot read properties of undefined (reading 'name')

index.js

let body = await axios.get(url, {
        responseType: 'stream',
    }).then(async () => {
        // console.log(body)

    }).catch(function (error) {
        if (error.response) {
            // Request made and server responded
            console.log(error.response.data);
            console.log(error.response.status);
            console.log(error.response.headers);
        } else if (error.request) {
            // The request was made but no response was received
            console.log(error.request);
        } else {
            // Something happened in setting up the request that triggered an Error
            console.log('Error', error.message);
        }

    });
    await wa.sendMedia(body.data, "file.png", phone_number).then().catch(e => {
        console.log(e)
    })
0 Answers
Related