GAS APIからデータ送信「Moved Temporarily The document has moved here. 」のエラー解決方法 for PHP

2020年1月22日

GAS APIを作成し、

スプレッドシートに書き込み、

スプレッドシートから出力 という処理を行いました。

すると、書き込み時には、問題なく書込めましたが、

スプレッドシートから出力した内容をCurlで受け取ると、

 

Moved Temporarily

The document has moved here. 

 

という文字が返ってきました。

本来ならJSONで返される予定だったのですが、この文字列。

hereの部分をクリックすると、期待値が入ったリンクへ飛ぶ状態でした。

無事解決したので、ここに記そうと思います。

 

解決方法

そもそも moved tmporarilyって?

これは、リンク先URLが変更されていることを表しています。

この変更されたリンク先へアクセスするためには、Curlでリダイレクトを辿るように設定する必要があります。

PHPでは以下のように記述することで受け取ることができました。

 

<?php
//URLを指定する(webアプリケーションURLを入力)
$url = "https://script.google.com/macros/s//exec";
//cURLを初期化して使用可能にする
$curl=curl_init();
//オプションにURLを設定する
curl_setopt($curl,CURLOPT_URL,$url);
//リダイレクトの際にヘッダのRefererを自動的に追加させる
curl_setopt($curl,CURLOPT_AUTOREFERER,true);
//URLにアクセスし、結果を表示させる
//文字列で結果を返させる
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
$get = curl_exec($curl);
//cURLのリソースを解放する
curl_close($curl);

//取得を確認
var_dump($get);

 

http://mio-koduki.blogspot.com/2012/08/phpcurl-curl_23.html 参考

 

これで取得することができました。

同じエラーが出ている人は参考にしてください。

 

 

 

未分類

Posted by took