Твиттер устарел параметр команды в ближайшее время. Запуск отдельных конечных точек для каждой команды скорее. Я работаю над 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
Twitter / X - Загрузите носитель через конечные точки V2 ⇐ Javascript
Форум по Javascript
-
Anonymous
1746186826
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>
Есть идеи, почему это не удалось? Хотя регистрация подсчета байтов, все совпадает с
Подробнее здесь: [url]https://stackoverflow.com/questions/79603323/twitter-x-upload-media-via-v2-endpoints[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия