2017-02-16 14 views
2

Я хочу загрузить определенную версию из Документа Google. Из API v2 Drive REST я получил следующую ссылку:Загрузить программно exportLink с диска

https://docs.google.com/feeds/download/documents/export/Export?id=XXXXX&revision=1&exportFormat=txt

Это первый раз, когда я что-то вроде этого, я полностью потерял. Это как-то связано с аутентификацией? То, что я собираюсь сделать, - это, наконец, иметь файл .txt на моем ПК.

Я пытался использовать это, без успеха:

http = urllib3.PoolManager(cert_reqs='CERT_REQUIRED', ca_certs=certifi.where()) 
url = 'https://docs.google.com/feeds/download/documents/export/Export?id=XXXXX&revision=1&exportFormat=txt' 
response = http.request('GET', url) 
print(response.status) 
print(response.read()) 

То, что я получил это:

200 
b'' 

Вероятно, я не беру во внимание много понятий, любой вид помощи приветствуется (на любом языке программирования).

Благодаря

ответ

0

Чтобы получить ссылку на экспортную версию ревизии, используйте revisions.list. Код включен в руководство, как и в других документах на Диске. revisions.list вернет кучу исправлений, которые вам понадобятся при вызове revisions.get.

Вот отрывок из руководства:

from apiclient import errors 
# ... 

def print_revision(service, file_id, revision_id): 
    """Print information about the specified revision. 

    Args: 
    service: Drive API service instance. 
    file_id: ID of the file to print revision for. 
    revision_id: ID of the revision to print. 
    """ 
    try: 
    revision = service.revisions().get(
     fileId=file_id, revisionId=revision_id).execute() 

    print 'Revision ID: %s' % revision['id'] 
    print 'Modified Date: %s' % revision['modifiedDate'] 
    if revision.get('pinned'): 
     print 'This revision is pinned' 
    except errors.HttpError, error: 
    print 'An error occurred: %s' % error 

И да, вы должны быть санкционированы и аутентификацию выполнить это требует.

+0

Спасибо за ответ, именно я получил эту ссылку с помощью revisions.list, в результате чего появился JSON, такой как https://developers.google.com/drive/v2/reference/revisions. К сожалению, единственный способ получить содержимое этой ревизии - это вставить предоставленную ссылку в адресную строку браузера. Я не мог понять, как выполнить эту задачу с Python, поэтому я безуспешно пытался с urllib3. Желаемый результат - это .txt-файл на моем ПК, который я мог бы достичь только с помощью адресной строки :( –