Использование OAuth и gdata для копирования электронной таблицы google

Я работаю с gspread, чтобы изменить существующие электронные таблицы Google и хотел бы сделать копию существующего. К сожалению, gspread не поддерживает это, но это можно сделать с помощью gdata (как описано в этом потоке ):

import gdata.docs.client docs_client = gdata.docs.client.DocsClient() docs_client.ClientLogin('ashe@pokemon.com', 'Pikachu', 'Any non empty string') base_resource = docs_client.GetResourceById(resource_id) new_resource = docs_client.copy_resource(base_resource, 'pokedex') 

Я хочу добиться этого с помощью OAuth, а не отдельной комбинации электронной почты и пароля для ClientLogin (или любого метода, который может получить желаемые результаты, документация кажется кошмарной плохой для API Google). Есть ли простой способ сделать это?

С новым API-интерфейсом Drive я нашел способ и надеюсь, что он может быть полезен другим:

 import httplib2 from apiclient import errors from apiclient.discovery import build from oauth2client.client import SignedJwtAssertionCredentials to_copy = '<id/key_string_from_desired_file_url>' # Service account e-mail from Google dev console drive_id = '<my_long_service_account_string>@developer.gserviceaccount.com' # Get the right permissions drive_scope = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive'] # pem key converted from p12 key generated in dev console with open(os.path.abspath('my_key.pem'), 'rb') as keyfile: drive_key = keyfile.read() credentials = SignedJwtAssertionCredentials(drive_id, drive_key, drive_scope) http = httplib2.Http() http = self.credentials.authorize(http) drive_service = build('drive', 'v2', http=http) file_copy = {'title': title} try: drive_service.files().copy(fileId=to_copy, body = file_copy).execute() except errors.HttpError, error: print error 

Новая версия 3.0 API Spreadsheet по-прежнему доступна только в gdata. API Google Диска не включает API таблиц.

Документы .

На домашней странице gdata API есть предупреждение, и она гласит:

Предупреждение. Большинство новых API Google не являются API-интерфейсами Google Data. Документация API данных Google применяется только к более старым API-интерфейсам, указанным в каталоге API данных Google. Информацию о конкретном новом API см. В документации по API. Сведения об авторизации запросов с использованием нового API см. В разделе Аутентификация и авторизация учетных записей Google.

Он не утверждает, что gdata полностью устарела. Неверно утверждать, что gdata устарела.

gdata устарела. Новый (2012) Drive API – это способ сделать это. Все это описано на странице https://developers.google.com/drive/.