APIを利用してお店ランキング表示を実装します。Script)は、その名の通り、Googleが提供するサーバサイド・スクリプトで、JavaScriptをベースに作られているので非常に取っ付きやすい言語です。API】検索結果が0件です。API】サーバ接続に失敗しました。API】リクエストが無効でした。API】リクエストの利用制限回数を超えました。API】サービスが使えない状態でした。API】原因不明のエラーが発生しました。API】検索結果が0件です。API】サーバ接続に失敗しました。API】リクエストが無効でした。API】リクエストの利用制限回数を超えました。API】サービスが使えない状態でした。API】原因不明のエラーが発生しました。//next_page_tokenが取得された場合は次ページあり。//次ページ情報の取得を繰り返す。//一旦「-1」に変更する。APIの結果が英語で取得されることが多くなったため、nearbysearchにパラメータ「language=ja」を追加しました。e.parameter.radius;GETのHTTPリクエストを受け取ると、doGetメソッドが呼び出されます。「e.parameter」から、GETパラメータを取得します。API」を呼び出して、住所(ランドマーク名)から緯度・経度を取得します。true」を付けて、エラー発生時にもレスポンスが取得できるようにしてください。JSON.parse(geocodeJson.getContentText());APIの返却結果のJSON文字列をパースして、GASで扱いやすようにJSONオブジェクトに変換します。API】検索結果が0件です。API】サーバ接続に失敗しました。API】リクエストが無効でした。API】リクエストの利用制限回数を超えました。API】サービスが使えない状態でした。API】原因不明のエラーが発生しました。";}JSONデータのstatusが「OK」の場合は、結果が正常に受け取れています。JSONオブジェクトを辿って、緯度・経度を取得しましょう。statusが「OK」以外の時はエラーなので、エラーメッセージを返します。true」を付けていない場合は、エラーが発生してエラーのレスポンスは取得できません。API」のnearbysearchを呼び出して、検索条件のお店情報を取得します。keywordには全角文字が入る可能性があるので、encodeURIComponentでURLエンコードをしておきましょう。[103〜120行目]//next_page_tokenが取得された場合は次ページあり。//next_page_tokenが取得できなくなるまで、//次ページ情報の取得を繰り返す。JSON.parse(placeJson.getContentText());JSONデータのnext_page_tokenが取得できた場合は、次ページ情報があると判断できます。nearbysearchの「pagetoken」パラメータにnext_page_tokenを渡して、次ページ情報を取得しましょう。next_page_tokenの値が取得できなくなるまで、次ページ情報の取得を繰り返します。次ページ情報の取得は、連続リクエストすると上手く結果が得られませんので、Utilities.sleepで2秒程待機してから行います。[134〜148行目]//ソートを正しく行うため、//ratingが設定されていないものを//一旦「-1」に変更する。0;});ratingの降順でソートし、ランキング表示を実現します。ソートの前に、ratingが設定されていないものをundefinedかどうかで判定して、「-1」としておきましょう。ソートでは、sortで「連想配列ソート」を行います。ここまでの解説では、PHPのソースと同様のことを説明しています。使うメソッドや記述が若干異なるだけで、ほぼほぼPHPソースからの焼き直しです。「GAS」ならではの注意点は以下です。output;HTMLを返却する場合は、HtmlService.createHtmlOutputメソッドを通して返却します。この時、setXFrameOptionsModeで「HtmlService.XFrameOptionsMode.ALLOWALL」と指定することが重要。この指定により、クライアントサイドのiframeに結果を表示できるようになります。完成したGASプログラムのURLをiframeに指定して、結果表示してみます。「GAS」での実装も無事できました!PHPと同様の結果が得られたと思います。BOT】を作りたくなった!次回予告。お店ランキング表示のLINEボットを作成します!!前へ123あなたへのおすすめ。