Добавить средство записи в электронную таблицу с помощью «API списка документов Google»

Я пишу скрипт в Google Aps (GAS), и мне нужно добавить пользователя (/ writer) (администратора домена) в таблицу другого пользователя.

Скрипт запускается / вызывается с правами администратора.

Сначала я использую & quot; административный доступ к Службам Google для олицетворения пользователя домена & quot; и я получаю список его документов (электронных таблиц), и я получаю Id документов.

var oauthConfig = UrlFetchApp.addOAuthService("docs"); oauthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken"); oauthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken? (...)

Эта часть работает нормально и получает нужные идентификаторы.

Теперь я хочу добавить себе ([email protected]) к этому документу

Я пытаюсь это:

<code>var optAdvancedArgs = {
"contentType": "application/atom+xml",
"method": "POST",
"headers": {  "GData-Version": "3.0" }, 
              "oAuthServiceName": "docs", 
              "oAuthUseToken": "always",
           };
</code>

var url_set = & quot; https: //docs.google.com/feeds/" + пользователь + & quot; / private / full / document: & quot; + matriu2 [0] [6] + '/ acl / user: [email protected]'

var result = UrlFetchApp.fetch (url_set, optAdvancedArgs);

& Quot; пользователь & Quot; является владельцем документа, активным пользователем (Session.getActiveUser (). getUserLoginId ()) и & quot; matriu2 [nm] [6] & quot; Идентификатор документа.

Это не работает,

Есть идеи ?

Sergi

Ответы на вопрос(2)

Решение Вопроса

как я потратил час времени, вот что я получил. Эта функция поделится документом с вами (администратором домена). Вы можете изменить другие параметры в xml, чтобы иметь права на чтение, запись и т. Д.

function shareDocumentToMe(){
  var base = 'https://docs.google.com/feeds/';
  var fetchArgs = googleOAuth_('docs', base);
  var writerID = Session.getEffectiveUser().getEmail();
  fetchArgs.method = 'POST';
  var rawXml = "<entry xmlns='http://www.w3.org/2005/Atom' xmlns:gAcl='http://schemas.google.com/acl/2007'>"
      +"<category scheme='http://schemas.google.com/g/2005#kind' "
      +"term='http://schemas.google.com/acl/2007#accessRule'/>"
      +"<gAcl:role value='writer'/>"
      +"<gAcl:scope type='user' value='"+writerID+"'/>"
      +"</entry>";
  fetchArgs.payload = rawXml;
  fetchArgs.contentType = 'application/atom+xml';
  var url = base + '[email protected]/private/full/'+yourDocumentID+'/acl?v=3&alt=json';
  var content = UrlFetchApp.fetch(url, fetchArgs).getContentText();
  Logger.log(content);
}

//Google oAuth
function googleOAuth_(name,scope) {
  var oAuthConfig = UrlFetchApp.addOAuthService(name);
  oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope);
  oAuthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
  oAuthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
  oAuthConfig.setConsumerKey("anonymous");
  oAuthConfig.setConsumerSecret("anonymous");
  return {oAuthServiceName:name, oAuthUseToken:"always"};
}

Я разместил такой же код на моем сайте Google. Вы можете посмотреть здесь.https: //sites.google.com/site/appsscripttutorial/urlfetch-and-oaut

Я изменил следующее (var url = ...):

'[email protected]/private/full/'

п
user + '/private/full/'

гд

user = Session.getActiveUser (). getUserLoginId ()

а также вgoogleOAuth_ Я положил значения моего домена:

oAuthConfig.setConsumerKey ("mydomain.com");

oAuthConfig.setConsumerSecret ("xXxXxXxXxXxXxXxXx");

И это отлично работает!

Я думаю, что очень интересно, что администратор домена может действовать от имени пользователя (как только мы дадим разрешение) с некоторыми документами организации, но они были созданы пользователем.

Также пользовательские ресурсы (документы, электронные таблицы, ...), чтобы программа могла получить доступ (работает с разрешениями администратора), не требуя внимания (или у вас недостаточно опыта) пользователя, например, копии безопасности, .. .

В моем случае я создаю программу для оценки формы Документов Google, созданную пользователем (учителем), так же как и гаджет "Flubaroo", но в графической среде (GUI), запрограммированной Сайтами Google с помощью Google Apps Script (GAS). ).

Еще раз спасибо за ваше время

Sergi

Ваш ответ на вопрос