![]() |
![]() |
![]() |
|
Создание папки на 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
|
спасибо. разобрался (:
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |