1

GAE 用の Google の oauth2client ライブラリを使用して、GAE アプリケーションから Google アナリティクス データにアクセスしています。初めて Web ブラウザーから 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 にアクセスすることは、かなり一般的なことです...

4

0 に答える 0