如何从非用户进程访问OAuth2

时间:2013-02-19 17:54:33

标签: google-app-engine oauth oauth-2.0 google-analytics-api google-oauth

我正在使用谷歌的oauth2client库来获取GAE从GAE应用程序访问谷歌分析数据。当我第一次从网络浏览器点击URL时,它获得了我的凭据并签了一个令牌。我的计划是在每晚运行的cron作业中重复使用该令牌。

但是,该cron作业总是为302,我认为这意味着我的令牌不被接受。一些代码:

class GetGAHandler(webapp.RequestHandler):
  @decorator.oauth_required
  def get(self):
    if not decorator.has_credentials():
      logging.error("GA is asking for auth. Please visit %s" % self.request.url)
      self.redirect(decorator.authorize_url())
      return

(之后我会做有用的东西。)

当我从浏览器点击它时,它从不要求我提供我的凭据,所以我认为令牌很好。但是,当我的cron运行时,会发生这种情况:

2013-02-18 20:00:00.224 /admin/getGA 302 10ms 0kb AppEngine-Google; (+http://code.google.com/appengine)
0.1.0.1 - - [18/Feb/2013:17:00:00 -0800] "GET /admin/getGA HTTP/1.1" 302 426 - "AppEngine-Google; (+http://code.google.com/appengine)" "kaon-log.appspot.com" ms=10 cpu_ms=0 cpm_usd=0.000048 queue_name=__cron task_name=ff7194e21b55970ebaf7e369504de801 instance=00c61b117cbe215d928dbc53a31f55fb06f769b5

正如您所看到的,有一个302但没有记录消息,所以我猜装饰器正在进行重定向。

我错过了什么?从cron访问OAuth2 API必须是非常常见的......

0 个答案:

没有答案