gspread パッケージを使用して、Mac のターミナルで実行されている Python スクリプトで Google スプレッドシートを更新できます。
gc = gspread.login('username@domain.com','password')
gs = gc.open("Test Google Spreadsheet")
print gs.worksheets()
sht = gs.worksheet("Test Worksheet")
sht.update_cell(1, 1, "Test")
クラウド内の CentOS 6 ホストから同じスクリプトを実行すると、印刷 gs.worksheets() を取得できます。これは、認証が問題ではないことを意味しますが、更新コマンドでクラッシュします。
File "/mydir/myscript.py", line 30, in myfunc
sht.update_cell(1, 1, "Test")
File "my_ve_dir/lib/python2.7/site-packages/gspread/models.py", line 423, in update_cell
self.client.put_feed(uri, ElementTree.tostring(feed))
File "my_ve_dir/lib/python2.7/site-packages/gspread/client.py", line 250, in put_feed
raise ex
urllib2.HTTPError: HTTP Error 400: Bad Request
セルを一括更新する方法を使用すると、Mac では期待どおりに動作しますが、CentOS ホストでは (例外を発生させることなく) 黙って失敗します。
sht.update_cells(cell_list)
だから私は何が間違っているのだろうかと思っています。私は他のエンドポイントへの API リクエスト (GET と POST の両方を含む) を成功させているので、ここで何が起こっているのか混乱しています。どんなアイデアでも大歓迎です。