Twitter / X - Загрузите носитель через конечные точки V2Javascript

Форум по Javascript
Ответить
Anonymous
 Twitter / X - Загрузите носитель через конечные точки V2

Сообщение Anonymous »

Твиттер устарел параметр команды в ближайшее время. Запуск отдельных конечных точек для каждой команды скорее. Я работаю над JavaScript
Источник: https://docs.x.com/x-api/media/media-upload-initialize
Мой код не удастся при завершении шага-указание общего размера файла не совпадает. var media_id = result.data.id;
var url = 'https://api.x.com/2/media/upload/' + media_id + '/append';
var chunkSize = 5*1000*1000
var chunkCount = Math.ceil(totalSize / chunkSize);
var boundary = '011000010111000001101001'

for (var segmentIndex = 0; segmentIndex < chunkCount; segmentIndex++) {

var startByte = segmentIndex * chunkSize;
var endByte = Math.min(startByte + chunkSize, totalSize);
var chunkBytes = videoBlob.getBytes().slice(startByte, endByte);

var part1 = "--" + boundary + '\r\nContent-Disposition: form-data; name="segment_index"\r\n\r\n';
var part2 = "--" + boundary + '\r\nContent-Disposition: form-data; name="media"; filename="CHUNK.mp4"\r\nContent-Type: video/mp4\r\n\r\n';
var part3 = "\r\n--" + boundary + "--";

// Convert string parts to bytes
var part1Bytes = Utilities.newBlob(part1).getBytes();
var segmentIndexBytes = Utilities.newBlob(String(segmentIndex + 1) + "\r\n").getBytes();
var part2Bytes = Utilities.newBlob(part2).getBytes();
var part3Bytes = Utilities.newBlob(part3).getBytes();

var totalLength = part1Bytes.length + segmentIndexBytes.length + part2Bytes.length + chunkBytes.length + part3Bytes.length;
var fullBody = new Uint8Array(totalLength);

fullBody.set(part1Bytes, 0);
fullBody.set(segmentIndexBytes, part1Bytes.length);
fullBody.set(part2Bytes, part1Bytes.length + segmentIndexBytes.length);
fullBody.set(chunkBytes, part1Bytes.length + segmentIndexBytes.length + part2Bytes.length);
fullBody.set(part3Bytes, part1Bytes.length + segmentIndexBytes.length + part2Bytes.length + chunkBytes.length);

var parameters = {
'headers': {
'Authorization': 'Bearer ' + serviceTw.getAccessToken(),
'Content-Type': 'multipart/form-data; boundary=' + boundary ,
},
'payload': fullBody,
'method': 'POST',
};

var response = UrlFetchApp.fetch(url, parameters);
}
< /code>
Есть идеи, почему это не удалось? Хотя регистрация подсчета байтов, все совпадает с

Подробнее здесь: https://stackoverflow.com/questions/796 ... -endpoints
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»