ローカルサーバを立ち上げてサンプルコードを実行したが失敗した。
目標
ラズパイのCPU温度を定期的にロギングしてアップロードしたい。
小目標
PythonからFusionTablesAPIを使ってinsertする。
前回
OAuthとFusionTablesAPIのPythonサンプルコードを試すも失敗
対象環境
- Firefox 50.0
- Google Account
- Google Developers Console
- Google Drive
- Google Fusion Tables
- Google Apps Script
- Python 2.7
ローカルサーバを立ち上げる
ローカルサーバを立ち上げる方法を調べた。こちらを参照した。感謝。
Python2
python -m SimpleHTTPServer [ポート番号(デフォルトは8000)]
Python3
python3 -m http.server [ポート番号(デフォルトは8000)]
たったこれだけ。Pythonがあれば簡単。Python2の方法で試す。
実行
ポート番号が8000になるそうなので、前回のソースコードのhttp://localhost
をhttp://localhost:8000
に変更する。
- 上記コマンドでローカルサーバを立ち上げる
- サンプルソースコードを実行する
- コンソールに表示されたURLをコピーする
- ブラウザのロケールバーにURLをペーストする
許可
をクリックするhttp://localhost:8000/?code={ランダムな文字列}
のようなURLがでる。以下のようなページ表示がされたcode
パラメータの値をコピーする- コンソールに戻り、
Enter code (parameter of URL):
のところへペーストしてEnterキー押下する - 以下のようなエラーが表示された
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
とある。認証できなかったということだろう。
所感
認証するためのコードのはずなのに、どういうことなの。