GoogleAppEngine でこういうコードを書いた。(実際はもっといろんなことを書いている)
# coding: utf-8 print "Location: http://cranalyzer.appspot.com/do" print
で、実行してみる。
……あれ? リダイレクトされないぞ。ナンテコッタイ<(^o^)>
調べてみた。
リダイレクト、ヘッダー、ステータス コード - Google App Engine — Google Developers
どうやら、GoogleAppEngineのAPIをimportして使ってやればいいようだ。
で、完成したコードがこれ。(くどいようだが、実際はもっといろんなことを書いている)
# coding: utf-8 from google.appengine.ext import webapp from google.appengine.ext.webapp.util import run_wsgi_app class MainPage(webapp.RequestHandler): def get(self): self.redirect('http://cranalyzer.appspot.com/do') application = webapp.WSGIApplication([('/auth', MainPage)],debug=True) # (★) def main(): run_wsgi_app(application) if __name__ == "__main__": main()
なるほどね。
GoogleAppEngineはデフォルトで全てのURLリクエストを1つのスクリプトでさばく仕様になっているから、(★)の行の引数はもっと多くなるようだ。
そんなことは今回はどうでもいいから、'/auth'の部分をこのスクリプトを実行する相対パスにしてやればいいよ。
ちなみに、
self.response.headers['Content-type'] = 'text/html'
で、Content-typeが指定できるし、
self.response.headers['Set-cookie'] = 'rumia=rumia'
で、Cookieが作れるし、
self.request.get('code')
で、codeパラメータを取得できる。
ただ、今まで述べたのは全部、MainPageクラスのgetメソッド内に記述しないといけないから注意。