Skrypt do zmiany właściciela dokumentu w Dokumentach Google

Nowość w StackOverflow i skrypcie Google Apps. Doceniam wszelką pomoc / wskazówki.

Zadanie:

Próbuję napisać skrypt Google Apps, który przeniesie prawo własności do wszystkich plików w określonym folderze na jednego właściciela. Jestem super administratorem konta Google Apps w wersji profesjonalnej. Jednak nie będę ani pierwotnym właścicielem, ani nowym właścicielem, a nowi właściciele nie mogą być super administratorami (a zatem uruchamiać skrypty) ze względów bezpieczeństwa. Zarówno oryginalny, jak i nowi właściciele są w tej samej domenie.

znalazłemnastępujący kod, którego użyłem i dostosowałem do moich celów, ale otrzymuję „Żądanie nie powiodło się dla kodu 400. Odpowiedź serwera:” błędy wywołania URLFetchApp.

Co ja zrobiłem:

ZaPrzewodnik dla programistów listy Aplikacji Google Zmieniłem zmienną „base”, aby podszyć się pod nowego właściciela dokumentu:

    var base = 'https://docs.google.com/feeds/';

do

    var base = encodeURIComponent('https://docs.google.com/feeds/'+newOwnerEmail+'/private/full');

Zaktualizowałem także klucz konsumenta i klucz tajny do poprawnych wartości w metodzie googleOAuth_ (). W tym miejscu znajduje się cała sekcja kodu prowadząca i obejmująca problematyczną linię:

  file.removeEditor(newOwnerEmail);
  var base = encodeURIComponent('https://docs.google.com/feeds/'+newOwnerEmail+'/private/full');
  var fetchArgs = googleOAuth_('docs', base);
  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='owner'/>"
  +"<gAcl:scope type='user' value='"+newOwnerEmail+"'/>"
  +"</entry>";
  fetchArgs.payload = rawXml;
  fetchArgs.contentType = 'application/atom+xml';
  var url = base + encodeURIComponent(oldOwnerEmail + '/private/full/'+fileId+'/acl&alt=json');

  try { var content = UrlFetchApp.fetch(url, fetchArgs).getContentText(); }
  catch (err) { Logger.log(err.message) }

Za każdym razem, gdy aplikacja „próbuje” wykonać metodę UrlFetchApp.fetch (), aplikacja „przechwytuje” błąd 400.

Pytania:

Czego mi tu brakuje? Czy „fetchArgs” jest w jakiś sposób zniekształcony (być może „rawXML”, który „fetchArgs” jest podawany)? Czy dzięki nowemu pakietowi SDK Google Drive korzystasz z tego interfejsu API? Byłbym wdzięczny za wszelkie wskazówki lub zasoby, które mógłbym pominąć, a także wszelkie wskazówki dotyczące ulepszenia sposobu zadawania tych pytań. Z góry dziękuję.

questionAnswers(1)

yourAnswerToTheQuestion