未分類

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

更新日:

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 参考

 

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

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

 

 

 

-未分類

Copyright© エンジニアの階段 , 2019 All Rights Reserved Powered by STINGER.