Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

googgle drive api v3: не получается create permissions на мой google-sheets file

googgle drive api v3: не получается create permissions на мой google-sheets file
Я
   Cthulhu
 
02.11.19 - 14:03
access_token живой, залогинен под владельцем googlesheets-файла, fileId выдираю из url (открытого в браузере гугл-шита) между "https://docs.google.com/spreadsheets/d/"; и следующим слэшем("/").
inUserType = "user"; inUserRole = "reader";
//inUserEmail = "<мыло юзера, которому надо дать права на просмотр>";

//SheetsId = "<выдранный из урла гуглшита ИД файла>";
SslПараметр = Новый ЗащищенноеСоединениеOpenSSL( неопределено, неопределено );
Соединение = Новый HTTPСоединение(СерверГугл, , , , , 10 , SslПараметр );
Заголовки = Новый Соответствие;
Заголовки.Вставить("Authorization", "Bearer " + inAccessToken);
HTTPЗапрос = Новый HTTPЗапрос("/drive/v3/files/"+SheetsId+"/permissions?field=*", Заголовки);
ТелоЗапроса = Новый Структура; ТелоЗапроса.Вставить("kind","drive#permission");

ТелоЗапроса.Вставить("type",inUserType); ТелоЗапроса.Вставить("role",inUserRole);
ТелоЗапроса.Вставить("emailAddress",inUserEmail);    // мыло юзера, которому надо дать права на просмотр

НастройкиСериализации = Новый НастройкиСериализацииJSON;
НастройкиСериализации.ВариантЗаписиДаты = ВариантЗаписиДатыJSON.ЛокальнаяДатаСоСмещением;
НастройкиСериализации.ФорматСериализацииДаты = ФорматДатыJSON.ISO;
ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, ТелоЗапроса, НастройкиСериализации);
СтрJSON = ЗаписьJSON.Закрыть();
HTTPЗапрос.УстановитьТелоИзСтроки( СтрJSON , КодировкаТекста.UTF8 );
//HTTPОтвет = Соединение.ОтправитьДляОбработки( HTTPЗапрос );    // так тоже пробовал - с тем же результатом

HTTPОтвет = Соединение.ВызватьHTTPМетод( "POST" , HTTPЗапрос );
Если HTTPОтвет.КодСостояния >299 Тогда Сообщить("Ошибка создания новых прав доступа (код состояния = "
+ HTTPОтвет.КодСостояния + "):" + Символы.ВК + СтрокаОтвет) КонецЕсли;

результат удручает:
Ошибка создания новых прав доступа (код состояния =  400):
{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "badContent",
    "message": "Unsupported content with type: application/octet-stream"
   }
  ],
  "code": 400,
  "message": "Unsupported content with type: application/octet-stream"
}
}
******* помощи прошу!..
ну или киньте куском работающего кода, плз, на эту тему

заранееблагодаренивсётакоэ..........
 
 
   Cthulhu
 
1 - 02.11.19 - 14:03
   Cthulhu
 
2 - 02.11.19 - 14:05
а, да, там пропущено (перед "Если в конце): СтрокаОтвет = HTTPОтвет.ПолучитьТелоКакСтроку();
   Сияющий в темноте
 
3 - 03.11.19 - 00:47
так явно content type в application/json поставь
ведь ему именно это не нравится.
   Cthulhu
 
4 - 03.11.19 - 11:40
(3): спасибо, добрый человек.
знать бы еще куда-как (кодом) это дело запихнуть...
   Fram
 
5 - 03.11.19 - 11:50
(4) в заголовки
   Cthulhu
 
6 - 03.11.19 - 11:53
(3) (4) СПАСИБО ЛЮДИ!
"методом тыка" (т.к. в инет-кишках я абсолютный некопенгаген) сработал вариант
Заголовки.Вставить("Content-Type", "application/json");

   Сияющий в темноте
 
7 - 03.11.19 - 23:47
(6) я же не знал,что ты настолько как свинья в апельсинах
тем более,что а коде заголовки используются.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.