やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

ローカルサーバを立ち上げてOAuth2.0認証に挑むも失敗

ローカルサーバを立ち上げてサンプルコードを実行したが失敗した。

目標

ラズパイのCPU温度を定期的にロギングしてアップロードしたい

小目標

PythonからFusionTablesAPIを使ってinsertする。

前回

OAuthとFusionTablesAPIのPythonサンプルコードを試すも失敗

対象環境

ローカルサーバを立ち上げる

ローカルサーバを立ち上げる方法を調べた。こちらを参照した。感謝。

Python2

python -m SimpleHTTPServer [ポート番号(デフォルトは8000)]

Python3

python3 -m http.server [ポート番号(デフォルトは8000)]

たったこれだけ。Pythonがあれば簡単。Python2の方法で試す。

実行

ポート番号が8000になるそうなので、前回ソースコードhttp://localhosthttp://localhost:8000に変更する。

  1. 上記コマンドでローカルサーバを立ち上げる
  2. サンプルソースコードを実行する
  3. コンソールに表示されたURLをコピーする
  4. ブラウザのロケールバーにURLをペーストする
  5. 許可をクリックする
  6. http://localhost:8000/?code={ランダムな文字列}のようなURLがでる。以下のようなページ表示がされた
  7. codeパラメータの値をコピーする
  8. コンソールに戻り、Enter code (parameter of URL):のところへペーストしてEnterキー押下する
  9. 以下のようなエラーが表示された
Traceback (most recent call last):
  File "SimpleSample.py", line 192, in <module>
    api_test.main()
  File "SimpleSample.py", line 60, in main
    serv_resp = urllib2.urlopen(serv_req)
  File "C:\Python27\lib\urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Python27\lib\urllib2.py", line 437, in open
    response = meth(req, response)
  File "C:\Python27\lib\urllib2.py", line 550, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Python27\lib\urllib2.py", line 475, in error
    return self._call_chain(*args)
  File "C:\Python27\lib\urllib2.py", line 409, in _call_chain
    result = func(*args)
  File "C:\Python27\lib\urllib2.py", line 558, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 401: Unauthorized
exit status 1

HTTP Error 401: Unauthorizedとある。認証できなかったということだろう。

所感

認証するためのコードのはずなのに、どういうことなの。