Mit dem Folgenden kann ich programmgesteuert eine Tabelle in Google-Tabellen erstellen, aber der Besitzer des Blattes ist das Entwicklerkonto (eine verrückte Zeichenfolge mit der Endung "gserviceaccount.com"), und mein normales Konto kann die Tabelle nicht anzeigen. Was muss ich noch tun, um Google-Nutzer zu den Lese-/Schreibberechtigungen hinzuzufügen?Wie kann ich den Eigentümer einer Google Tabellen-Tabelle ändern?
from oauth2client.service_account import ServiceAccountCredentials
from googleapiclient import discovery
# ... json_key is the json blob that has the credentials
scope = ['https://spreadsheets.google.com/feeds']
credentials = ServiceAccountCredentials.from_json_keyfile_dict(json_key, scope)
service = discovery.build('sheets', 'v4', credentials=credentials)
spreadsheet = {
"properties": {"title": "my test spreadsheet"}
}
service.spreadsheets().create(body=spreadsheet).execute()
Edit:
Ich habe versucht, den Umfang zu ['https://www.googleapis.com/auth/drive']
ändern, aber die Antwort unten noch nicht für mich zu arbeiten. Als ich
print [xx for xx in dir(service) if not xx.startswith('_')]
ich
['new_batch_http_request', u'spreadsheets']
Mit anderen Worten, permissions()
kein Verfahren in service
ist wie ich Dienst definiert. Was soll ich anders machen?
Hmm, ist Ihr 'Service' die gleiche Sache wie meins?Ich bekomme das: 'AttributError: 'Ressource' Objekt hat kein Attribut 'Berechtigungen'' auf das" 'return service.permissions(). Einfügen' ..." Bit. Anders gesagt, wenn ich in IPython nach der Eingabe von "' service. "auf die Registerkarte klicken, scheint" 'permissions()' "keine Mitgliedsmethode zu sein. – dslack
Oh, vielleicht ist das Problem mein 'Scope'? – dslack
Ich habe dem obigen Beitrag eine Bearbeitung hinzugefügt, die auf Ihren Vorschlag reagiert, weil ich dachte, dass es einfacher ist, das Post-Format als das Kommentar-Format zu lesen. Upshot, der "Scope" scheint nicht das Problem zu sein. (?) – dslack