Как выполнять OAuth-требующие операции в работе cron GAE?

Этот пост является продолжениемКак выполнять операции, требующие OAuth, в очереди задач GAE?, Как предложил bossylobster в этом посте, я попытался жестко закодироватьuser_id в моем сценарии, но задача cron всегда терпит неудачу:

Я вижу, как это происходит в журналах ...

2013-05-31 14:20:00.879 /update 302 5ms 0kb AppEngine-Google; (+http://code.google.com/appengine)
0.1.0.1 - - [31/May/2013:11:20:00 -0700] "GET /update HTTP/1.1" 302 385 - "AppEngine-Google; (+http://code.google.com/appengine)" "myapp.appspot.com" ms=6 cpu_ms=0 cpm_usd=0.000043 queue_name=__cron task_name=... app_engine_release=1.8.0 instance=...
... однако, это всегда терпит неудачу (показывается как красный "Не удалось" в AppEngine'sКрон Джобс раздел), и очередь задач это 'должен бежать никогда не всплывает вОчереди задач раздел.

Что я не делаюЯ понимаю, что если я открою/update вручную у меня есть приглашение для входа ниже. Как cron должен обойти это? Как я могу отладить что?происходит?

Спасибо за помощь.

РЕДАКТИРОВАТЬ / продолжение на @dlebech answer: Проблема сохраняется после добавленияlogin: admin линия к заинтересованнымurl вapp.yaml, Локально (повход в систему как администратор и посещение URL обработчика в вашем браузере как упомянутоЗащита URL для Cron) все идет хорошо, но как только я развернусь, мое приложение никогда не выйдет за рамки декоратора OAuth2:

С несколькими отладкамиprint заявления...

import webapp2
...

YOUTUBE_RW_SCOPE = "https://www.googleapis.com/auth/youtube"
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"
print "Building youtube object"
print "Built youtube object"
youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION)
print "Building decorator object"
decorator = OAuth2DecoratorFromClientSecrets(CLIENT_SECRETS, YOUTUBE_RW_SCOPE)
print "Built decorator object"
...

class FetchHandlerPage(webapp2.RequestHandler):
    print "Entering FetchHandlerPage"

    @decorator.oauth_required
    def get(self):
        print "Entering FetchHandlerPage:get"
        gae_user_id = USER_ID
        query_string = urlencode({'user_id': gae_user_id})
        taskqueue.add(url='/fetchworker?' + query_string, method='GET')

... вот что я вижу после развертывания в моих журналах GAE (журналы останавливаются на последней строке, затем ничего не происходит):

2013-05-31 16:12:02.765 /fetch 302 1746ms 0kb AppEngine-Google; (+http://code.google.com/appengine)
0.1.0.1 - - [31/May/2013:13:12:02 -0700] "GET /fetch HTTP/1.1" 302 385 - "AppEngine-Google; (+http://code.google.com/appengine)" "myapp.appspot.com" ms=1747 cpu_ms=844 cpm_usd=0.000070 queue_name=__cron task_name=... loading_request=1 app_engine_release=1.8.0 instance=...
I 2013-05-31 16:12:02.444 URL being requested: https://www.googleapis.com/discovery/v1/apis/youtube/v3/rest?userIp=0.1.0.1
E 2013-05-31 16:12:02.764 Building youtube object
E 2013-05-31 16:12:02.764 Built youtube object
E 2013-05-31 16:12:02.764 Building decorator object
E 2013-05-31 16:12:02.764 Built decorator object
E 2013-05-31 16:12:02.764 End static variables
E 2013-05-31 16:12:02.764 Entering FetchHandlerPage
I 2013-05-31 16:12:02.765 This request caused a new process to be started for your application, and thus caused your application code to be loaded for the first time. This requ

Ответы на вопрос(1)

Ваш ответ на вопрос