|
|
|
Создание папки на Google Drive | ☑ | ||
|---|---|---|---|---|
|
0
l4kom
20.11.23
✎
10:13
|
Здравствуйте. прошу помощи. необходимо создавать из 1с папку на google drive. проблем с созданием файлов, обновлением не возникает. но создать папку не получается.
код: &НаСервере
Процедура СоздатьПапкуНаСервере()
Токен = УчетнаяЗапись.Access_token;
ИдРодителя = Папка.Родитель.Ид;
Свойства = Новый Соответствие();
Свойства.Вставить("parents", ИдРодителя);
Свойства.Вставить("name", Папка.Наименование);
ТипДанныхИмпорта = "application/vnd.google-apps.folder";
Свойства.Вставить("mimeType", ТипДанныхИмпорта);
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, Свойства);
СтрокаJSON = ЗаписьJSON.Закрыть();
Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", "");
ДвоичныеДанныеJSON = СоздатьСообщение_Текст(СтрокаJSON);
ПотокТело = Новый ПотокВПамяти();
ЗаписьДанных = Новый ЗаписьДанных(ПотокТело);
ЗаписьДанных.ЗаписатьСтроку("--"+boundary);
ЗаписьДанных.Записать(ДвоичныеДанныеJSON);
ЗаписьДанных.ЗаписатьСтроку("--"+boundary);
//ЗаписьДанных.ЗаписатьСтроку("--"+boundary+"--");
ЗаписьДанных.Закрыть();
ПотокТело = Новый ПотокВПамяти();
ЗаписьДанных = Новый ЗаписьДанных(ПотокТело);
ЗаписьДанных.ЗаписатьСтроку("--"+boundary);
ЗаписьДанных.Закрыть();
ДвоичныеДанныеТело = ПотокТело.ЗакрытьИПолучитьДвоичныеДанные();
Заголовки = Новый Соответствие;
Заголовки.Вставить("Authorization", "Bearer " + Токен);
Заголовки.Вставить("Content-Type", "Multipart/Related; boundary=" + boundary);
Заголовки.Вставить("Content-Length", Формат(ДвоичныеДанныеТело.Размер(), "ЧГ="));
ПараметрыHTTP = "&fields=name,id,mimeType,parents,size,webContentLink,webViewLink,iconLink,thumbnailLink,createdTime,modifiedTime,fullFileExtension";
HTTPЗапрос = Новый HTTPЗапрос("/upload/drive/v3/files?uploadType=multipart" + ПараметрыHTTP, Заголовки);
HTTPЗапрос.УстановитьТелоИзДвоичныхДанных(ДвоичныеДанныеТело);
SSL = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено);
GoogleServer = "www.googleapis.com
Соединение = Новый HTTPСоединение(GoogleServer,,,,,,SSL);
Результат = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
Ошибка = ОбработатьОтвет(Результат);
Если Ошибка <> "" Тогда
ВызватьИсключение Ошибка;
КонецЕсли;
СтрокаОтвет = Результат.ПолучитьТелоКакСтроку();
СтрокаJSON = СтрокаОтвет;
Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку(СтрокаОтвет);
ДанныеОтвет = ПрочитатьJSON(Чтение, Ложь);
Чтение.Закрыть();
КонецПроцедуры
Функция СоздатьСообщение_Текст(СтрокаJSON)
Поток = Новый ПотокВПамяти();
ЗаписьДанных = Новый ЗаписьДанных(Поток);
ЗаписьДанных.ЗаписатьСтроку("Content-Type: application/json; charset=UTF-8");
ЗаписьДанных.ЗаписатьСтроку("");
ЗаписьДанных.ЗаписатьСтроку(СтрокаJSON);
ЗаписьДанных.Закрыть();
Возврат Поток.ЗакрытьИПолучитьДвоичныеДанные();
КонецФункции
Функция ОбработатьОтвет(Результат)
Если Результат.КодСостояния <> 200 И Результат.КодСостояния <> 204 тогда
СтрокаОтвет = Результат.ПолучитьТелоКакСтроку();
Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку(СтрокаОтвет);
ДанныеОтвет = ПрочитатьJSON(Чтение, Ложь);
Чтение.Закрыть();
Возврат ДанныеОтвет.Error.message;
КонецЕсли;
Возврат "";
КонецФункции
код возвращает: Invalid multipart request with 0 mime parts. может кто-нибудь сталкивался с задачей создания папок? |
|||
|
1
Garykom
20.11.23
✎
10:14
|
Проблема не в папках а в "multipart"
|
|||
|
2
l4kom
20.11.23
✎
10:17
|
Заголовки.Вставить("Content-Type", "Multipart/Related; boundary=" + boundary);
тут? |
|||
|
3
Garykom
20.11.23
✎
10:28
|
каталог это документ с mimeType application/vnd.google-apps.folder
https://infostart.ru/1c/articles/1273600/ |
|||
|
4
Garykom
20.11.23
✎
10:30
|
(2) сравни с примером в (3)
Процедура ЗагрузитьФайлНаГуглДиск(ПутьКФайлу, access_token, mimeType) Экспорт |
|||
|
5
Garykom
20.11.23
✎
10:31
|
||||
|
6
l4kom
20.11.23
✎
11:22
|
спасибо. разобрался (:
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |