Как использовать API очереди задач в Google App Engine? - PullRequest
0 голосов
/ 19 мая 2018

Я включил API очереди задач в my_project Google Cloud Platform.

И я сгенерировал идентификатор клиента OAuth для веб-приложения и установил URL-адрес перенаправления на https://my_project.appspot.com/oauth2callback.
И добавил (decorator.callback_path, decorator.callback_handler ()) для webapp2.WSGIApplication.

from oauth2client.contrib.appengine import OAuth2DecoratorFromClientSecrets
from googleapiclient.discovery import build

decorator = OAuth2DecoratorFromClientSecrets(
'my.json', scope='https://www.googleapis.com/auth/tasks.readonly')

@decorator.oauth_aware
def get_google_client_credential_tasks(self):
    http = decorator.http()

    service_tasks = build('tasks', 'v1', http=http)

    temp_str = ''
    tasklists = service_tasks.tasklists().list().execute(http=http)
    for tasklist in tasklists[0]['items']:
        temp_str += tasklist['title']

    self.response.write(temp_str)

Когда я выполняю приведенный выше код, я получаю следующее сообщение об ошибке.

https://www.googleapis.com/tasks/v1/users/@me/lists?alt=json возвращает «Недостаточное разрешение»>

Как исправить ошибку?

1 Ответ

0 голосов
/ 21 мая 2018
@decorator.oauth_aware
def get_google_client_credential_tasks(self):
    if decorator_google_client.has_credentials():
        http = decorator.http()

        service_tasks = build('tasks', 'v1', http=http)

        temp_str = ''
        tasklists = service_tasks.tasklists().list().execute(http=http)
        for tasklist in tasklists[0]['items']:
            temp_str += tasklist['title']

        self.response.write(temp_str)
    else:
        url = decorator_google_client.authorize_url()
        self.redirect(url)
...