1

Я успешно дублировал API задач от this, но я не могу успешно перевести этот формат с использованием API YouTube.Google App Engine Python - API YouTube v3 - Недостаточное разрешение

Вот мой .py файл:

import httplib2 
import os 
import sys 
import jinja2 
import webapp2 
import logging 
import pprint 

from oauth2client import tools 
from oauth2client.client import flow_from_clientsecrets 
from oauth2client.client import OAuth2WebServerFlow 
from oauth2client.client import AccessTokenRefreshError 
from oauth2client.tools import argparser, run_flow 
from oauth2client.appengine import OAuth2Decorator 

from apiclient.discovery import build 
from google.appengine.ext.webapp import util 
from google.appengine.ext.webapp import template 

decorator = OAuth2Decorator(
    client_id = '*my client ID*', 
    client_secret = '*my client secret*', 
    scope='https://www.googleapis.com/auth/youtube') 

service = build("youtube", "v3") 

class MainHandler(webapp2.RequestHandler): 
    @decorator.oauth_required 
    def get (self): 
     self.response.headers['Content-Type'] = 'text/plain' 

     channels_list = service.channels().list(
      mine=True, 
      part="id" 
     ).execute(http = decorator.http()) 
     self.response.out.write (pprint.pformat(channels_list)) 


app = webapp2.WSGIApplication (
     [ 
      ('/', MainHandler), 
      (decorator.callback_path, decorator.callback_handler()), 
     ], 
     debug=True) 

Вот мой Traceback:

Traceback (most recent call last): 

    File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1535, in __call__ 

    rv = self.handle_exception(request, response, e) 

    File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1529, in __call__ 

    rv = self.router.dispatch(request, response) 

    File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1278, in default_dispatcher 

    return route.handler_adapter(request, response) 

    File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 1102, in __call__ 

    return handler.dispatch() 

    File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 572, in dispatch 

    return self.handle_exception(e, self.app.debug) 

    File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2-2.5.2\webapp2.py", line 570, in dispatch 

    return method(*args, **kwargs) 

    File "C:\Users\...\testapp\oauth2client\appengine.py", line 733, in check_oauth 

    resp = method(request_handler, *args, **kwargs) 

    File "C:\Users\...\testapp\testapp.py", line 35, in get 

    ).execute(http = decorator.http()) 

    File "C:\Users\...\testapp\oauth2client\util.py", line 129, in positional_wrapper 

    return wrapped(*args, **kwargs) 

    File "C:\Users\...\testapp\apiclient\http.py", line 723, in execute 

    raise HttpError(resp, content, uri=self.uri) 

HttpError: <HttpError 403 when requesting https://www.googleapis.com/youtube/v3/channels?part=id&mine=true&alt=json returned "Insufficient Permission"> 

INFO  2015-06-13 12:27:54,515 module.py:788] default: "GET/HTTP/1.1" 500 2278 

Я проверил и перепроверил, что у меня есть как API данных YouTube и YouTube Analytics API включен этот идентификатор клиента. Я даже отключил их и снова включил проверку, но я все еще получаю эту ошибку.

Я новичок в GAE и его методах, поэтому, возможно, я не понимаю ошибки в Traceback.

Одно замечание заключается в том, что я получал «ImportError: No module named ...» для apiclient, httplib2, oauth2client и uritemplate, поэтому я переместил эти папки непосредственно в файл приложения (и не получил эту ошибку снова). Не уверен, что перемещение их непосредственно в папку вызывает ошибки.

ответ

0

Надеюсь, что я никому не тратил время, но если у кого-то еще есть эта проблема, я нашел this вопрос, и хотя у меня не было проблемы с memcache, я отменил разрешение для своего приложения из учетной записи пользователя I использовал, обновил приложение и снова дал разрешение, и теперь он работает.

Я предполагаю, что это проблема Google. Спасибо всем, кто потратил время, чтобы прочитать мой вопрос.

+0

На самом деле это происходит случайным образом, и отмена разрешений не всегда помогает. Похоже, что на серверах OAuth2 от Google могут возникать проблемы с хранением учетных данных в разы, когда приложения запускаются из localhost. – Feedslant