Задать вопрос
bismoney
@bismoney

Как передать оффлайн конверсию в node js request?

Ребята подскажите как с помощью node js и request передать файл csv как того требует yandex.
В php и curl все работает, а вот тут не могу заставить работать.

Документация yandex
https://yandex.ru/dev/metrika/doc/api2/practice/of...

// requestSend
async function requestSend(data) {

    // errorMsg
    var errorMsg = {result: false};

    // errorData
    if (!data && !data.paramData) {
        return errorMsg;
    };

    var data = data.paramData;

    // request options
    let requestOptions = {
        url: data.url,
        method: data.method,
        headers: {
            'Authorization': 'OAuth '+global.config.settings.YandexMetrikaKey,
            'Content-Type': 'multipart/form-data',
        },
    };

    async function yandexResponse(data) {
        return new Promise(resolve => {
            request(data, (err, res, responseBody) => {
                console.log(err)
                console.log(res)
                console.log(responseBody)
                if (!err && res.statusCode == 200) {
                    resolve(responseBody)
                }
            })
        })
    }

    const requestResponse = await yandexResponse(requestOptions);

    console.log(requestResponse)

    if (requestResponse && requestResponse !== 'undefined') {
        return {result: true, resultData: requestResponse};
    }

    return errorMsg;

}


Параметры которые передаются в фукнцию

{
  url: 'https://api-metrika.yandex.net/management/v1/counter/НомерСчетчика/offline_conversions/upload?client_id_type=CLIENT_ID',
  file: 'полный_путь_к_файлу_csv.csv',
  fileName: 'название_файла.csv',
  method: 'POST'
}


{"errors":[{"error_type":"invalid_uploading","message":"Request parameter not found","location":"file"}],"code":400,"message":"Request parameter not found"}
  • Вопрос задан
  • 379 просмотров
Подписаться 1 Средний Комментировать
Ответ пользователя Grish Poghosyan К ответам на вопрос (3)