Как сделать отправку конверсий на node?

$counterId = '';
$filePath = 'data.csv';
$authToken = '';
 
$url = 'https://api-metrika.yandex.ru/management/v1/counter/' . $counterId . '/offline_conversions/upload?client_id_type=CLIENT_ID';
 
if (function_exists('curl_file_create')) { // php 5.5+
    $cFile = curl_file_create($filePath, 'text/csv', 'data.csv');
} else { //
    $cFile = '@'.realpath($filePath);
}
 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, ['file' => $cFile]);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: multipart/form-data',
    'Authorization: OAuth ' . $authToken
]);
$result = curl_exec($ch);
 
echo $result;

На php в таком виде все работает, на node никак не получается.

var Curl = require( 'node-libcurl' ).Curl;

var curl = new Curl();

curl.setOpt('URL', data.url);
curl.setOpt('FOLLOWLOCATION', true);
curl.setOpt('SSL_VERIFYPEER', false);
//curl.setOpt('RETURNTRANSFER', true);
//curl.setOpt(Curl.option.POST, true);
curl.setOpt(Curl.option.VERBOSE, true)
curl.setOpt(Curl.option.HTTPPOST, [
    { name: data.fileName, file: data.file, type: 'text/csv' }
]);
//curl.setOpt(Curl.option.POSTFIELDS, dataS);
//curl.setOpt('CUSTOMREQUEST', 'POST');
curl.setOpt('HTTPHEADER', [
    'Authorization: OAuth ТОКЕН',
    'Content-Type: multipart/form-data'
]);

curl.on( 'end', function( statusCode, body, headers ) {
    console.info(statusCode);
    console.info( '---' );
    console.info(body);
    console.info( '---' );
    console.info(headers);

    this.close();
});

curl.on( 'error', function( err, curlErrorCode ) {

    console.error( err.message );
    console.error( '---' );
    console.error( curlErrorCode );

    this.close();

});

curl.perform();

Выдает ошибку:

{"errors":[{"error_type":"invalid_uploading","message":"Request parameter not found","location":"file"}],"code":400,"message":"Request parameter not found"}

3 дня убил, все перерыл, что за такой параметр мистический...

Вот ссылка на офф документацию: https://yandex.ru/dev/metrika/doc/api2/practice/offline-conv.html


Ответы (0 шт):