質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

2回答

5777閲覧

GAS(Google Apps Script)のAPIにPOSTでアクセスし、Jsonを返したいが「Moved Temporarily」となってしまう。

yuki_baseball

総合スコア7

GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2018/08/08 13:38

編集2022/01/12 10:55

前提・実現したいこと

GAS(Google Apps Script)のAPIにPOSTでアクセスし、Jsonを返したいが「Moved Temporarily」となってしまう。

発生している問題・エラーメッセージ

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

該当のソースコード

function doPost(e) {
return ContentService.createTextOutput(JSON.stringify({
'version': '1.0',
'sessionAttributes' : null,
'response' : {
'outputSpeech' : {
'type' : 'SimpleSpeech',
'values' : {
'lang' : 'ja',
'type' : 'PlainText',
'value' : 'テストメッセージ'
}
},
'directives' : null,
'shouldEndSession' : false
}
}))
.setMimeType(ContentService.MimeType.JSON);
}

コメント

Getではできました。
Postに関しては色々試したのですが全然できないので教えてください。お願いします。
プロジェクトは「公開」→「ウェブアプリケーションとして導入」を選択してアクセスできるユーザーも「全員(匿名ユーザ含む)」に設定しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

papinianus

2018/08/09 03:34

アクセスできるユーザですが「全員」ではなく「全員(匿名ユーザ含む)」にしておられますか?
yuki_baseball

2018/08/09 04:28

コメントありがとうございます。「全員(匿名ユーザ含む)」にしています。
papinianus

2018/08/09 09:20

このコードでdoGetと同じjsonがdoPostでもかえってきました。回答でなく、報告とお考えください。
yuki_baseball

2018/08/10 00:39 編集

報告ありがとうございます。環境によって変わるのですかね。。念のため、Postのリクエストを送ったツールを教えていただけませんか? 実行→関数を実行で実行するとできるのですが、実際にURLを叩くと302エラーが出てしまいます。。
papinianus

2018/08/10 01:59

Postmanで試してます。逆にURLたたくと、はどういう方法ですか?
yuki_baseball

2018/08/10 03:11

Postmanだと私もできました!LINE Clovaのデベロッパツールからリクエストを投げているのですが、そちらからだと302エラーになるようです。他にもAdvanced REST clientを使ってリクエストを投げたら302エラーになりましたのでLine Clova側の問題ではないと思います。
yuki_baseball

2018/08/10 04:16

GASだとできないんですかね。。記事ありがとうございます。
papinianus

2018/08/10 04:57

GASだとできないってことはないと思います。GASが必ず302を返すと分かっていれば、応答ヘッダにあるlocationか、応答の内容のaタグのhref属性の値から次の遷移先を得ればいいだけです。応答に時間がかかってline clova側が待てない可能性はありますけれど。
yuki_baseball

2018/08/10 05:35

locationから次の遷移先は取得できましたが、そちらへのアクセスはGetのみしか受け付けていないようでした。Line clova側からはPost送信しか行われないので、どうやってJsonをreturnすればよいかわかりません。。
papinianus

2018/08/10 06:21 編集

ざっと見ましたが、GASからは無理っぽいですね。HTTPメソッドがPOSTに限定されていて、かつjsonしか受け取れないのですね。 GAS⇔clovaは無理っぽいです
yuki_baseball

2018/08/10 08:39

わかりました。調べてくださりありがとうございました!
papinianus

2018/08/10 09:10

こういうときに良く使われる別の(無料で動ける)サービスとしてherokuというのがあります。もしくはgceの無料枠。参考程度で。
guest

回答2

0

呼び出し側でリダイレクトを許可されていない場合それが原因かもしれません。
「gas post redirect」で検索してみると参考サイトが出てくると思います。

投稿2019/09/15 04:09

nkigs

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

curlでPOSTする分には問題なさそうです。

$ curl -Ss -d key=val -L https://script.google.com/macros/s/<YOUR_ID>/exec {"version":"1.0","sessionAttributes":null,"response":{"outputSpeech":{"type":"SimpleSpeech","values":{"lang":"ja","type":"PlainText","value":"テストメッセージ"}},"directives":null,"shouldEndSession":false}} $

投稿2018/08/12 01:37

shozi3

総合スコア691

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問