2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Google Apps Scriptにcurlする時のおまじない

Posted at

Google Apps Script(以下GAS)にて、doGet( )でGETリクエストに対してJSONを返す感じのアプリを作り、Linux系OSのマシンから直接curlしてアレコレしたかった時に遭遇したのでメモ。
doPost( )だともう少しややこしい気がするので、リクエストヘッダ読んだりして頑張りましょう。

#課題
GASで公開したウェブアプリケーションのURLに対し、特にオプション等をつけずに、

$ curl https://~略(GASアプリケーションのURL)

とすると、

<HTML>
<HEAD>
<TITLE>Moved Temporarily</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Moved Temporarily</H1>
The document has moved <A HREF="https://~略">here</A>.
</BODY>
</HTML>

こんな感じのレスポンスが返ってきて、本来受け取るはずだったレスポンスが受け取れない、みたいなことになります。

GASの仕様上、

The document has moved <A HREF="https://~略">here</A>

この部分に書かれたURLの先へリダイレクトしてからデータの受け取りなどを行うようになっているようで。

curlコマンドのデフォルトではリダイレクトを行わないため、上記のようなレスポンスが返ってくる結果となってしまいます。

解決策

リダイレクトさせる-Lオプションをつけてcurlする。これだけ。

$ curl -L https://~略(GASアプリケーションのURL)

参考とか

GASのdoPost関数をcurlでテストする時リダイレクトが必要なら-Xオプションを使わない

よく使うcurlコマンドのオプションまとめ(14個)

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?