вроде все делаю по https://developers.google.com/drive/api/v3/reference/permissions/create залогинен под владельцем googlesheets-файла, fileId выдираю из url (открытого в браузере гугл-шита) между "https://docs.google.com/spreadsheets/d/"; и следующим слэшем("/"), access_token живой....
код
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Ответ.ПолучитьТелоКакСтроку();
Если 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"
}
}
******* помощи прошу!..
ну или киньте куском работающего кода, плз, на эту тему
решилось еще тогда - а сейчас глянул в свои темы нечаянно - и в эту, и подумал, что может пригодиться кому-нибудь ещё: суть в том, что api google drive в отдельных случаях может тупо не понять. что формат данных в сообщении - это дефолтный json. потому (и в любом случае - по правилам хорошего тона) необходимо явно указать:
решилось еще тогда - а сейчас глянул в свои темы нечаянно - и в эту, и подумал, что может пригодиться кому-нибудь ещё: суть в том, что api google drive в отдельных случаях может тупо не понять. что формат данных в сообщении - это дефолтный json. потому (и в любом случае - по правилам хорошего тона) необходимо явно указать: