gdata.docs.client.DocsClient

У меня есть следующий код, читает файл формы токена oauth2, затем пытается выполнить запрос списка документов, чтобы найти конкретную электронную таблицу, которую я хочу скопировать, однако независимо от того, что я пробую, код либо выдает ошибку, либо возвращает объект, не содержащий документа данные.

Я использую gdata.docs.client.DocsClient, который, насколько я могу судить, является версией 3 API

def CreateClient():
"""Create a Documents List Client."""
client = gdata.docs.client.DocsClient(source=config.APP_NAME)
client.http_client.debug = config.DEBUG
# Authenticate the user with CLientLogin, OAuth, or AuthSub.

if os.path.exists(config.CONFIG_FILE):
    f = open(config.CONFIG_FILE)
    tok = pickle.load(f)
    f.close()
    client.auth_token = tok.auth_token

return client

1-я попытка запроса

def get_doc():


new_api_query = gdata.docs.client.DocsQuery(title='RichSheet', title_exact=True, show_collections=True)

d = client.GetResources(q = new_api_query)

это терпит неудачу со следующей трассировкой стека

    Traceback (most recent call last):
  File "/Users/richard/PycharmProjects/reportone/make_my_report.py", line 83, in <module>
    get_doc()
  File "/Users/richard/PycharmProjects/reportone/make_my_report.py", line 57, in get_doc
    d = client.GetResources(q = new_api_query)
  File "/Users/richard/PycharmProjects/reportone/gdata/docs/client.py", line 151, in get_resources
    **kwargs)
  File "/Users/richard/PycharmProjects/reportone/gdata/client.py", line 640, in get_feed
    **kwargs)
  File "/Users/richard/PycharmProjects/reportone/gdata/docs/client.py", line 66, in request
    return super(DocsClient, self).request(method=method, uri=uri, **kwargs)
  File "/Users/richard/PycharmProjects/reportone/gdata/client.py", line 267, in request
    uri=uri, auth_token=auth_token, http_request=http_request, **kwargs)
  File "/Users/richard/PycharmProjects/reportone/atom/client.py", line 115, in request
    self.auth_token.modify_request(http_request)
  File "/Users/richard/PycharmProjects/reportone/gdata/gauth.py", line 1047, in modify_request
    token_secret=self.token_secret, verifier=self.verifier)
  File "/Users/richard/PycharmProjects/reportone/gdata/gauth.py", line 668, in generate_hmac_signature
    next, token, verifier=verifier)
  File "/Users/richard/PycharmProjects/reportone/gdata/gauth.py", line 629, in build_oauth_base_string
    urllib.quote(params[key], safe='~')))
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 1266, in quote
    if not s.rstrip(safe):
AttributeError: 'bool' object has no attribute 'rstrip'

Process finished with exit code 1

тогда моя вторая попытка

def get_doc():

    other = gdata.docs.service.DocumentQuery(text_query='RichSheet')

    d = client.GetResources(q = other)

это возвращает объект ResourceFeed, но не имеет содержимого. Я прошел через исходный код для этих функций, но вещь не очевидна.

Я что-то пропустил? или я должен вернуться к версии 2 API?

0 ответов

Другие вопросы по тегам