どうも、まさとらん(@0310lan)です。みなさんは、「Google Apps Script(以下、GAS)」を使ったことがあるでしょうか?昔は、スプレッドシートのマクロ的な使い方であったり、Googleサービスを連携するために使うことが多かったような気がします。しかし、今ではGASを単体で利用できるようにな … 【GAS】JSONをZIPで固めてGoogleDriveに保存する方法 . msmaflink({"n":"改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで","b":"","t":"","d":"https:\/\/m.media-amazon.com","c_p":"","p":["\/images\/I\/51tDpXBLD7L.jpg"],"u":{"u":"https:\/\/www.amazon.co.jp\/dp\/B01LYO6C1N","t":"amazon","r_v":""},"aid":{"amazon":"1879761","rakuten":"678083","yahoo":"1879762"},"eid":"JZ6Ti","s":"s"}); 今回使用するスプレッドシートのサンプルには3つのプロジェクトが入っています。それぞれ、JSONでデータを処理するサンプルと、JSONデータを配信するサンプルとなっています。, 今回のスプレッドシートを使用する為には、スプレッドシートをコピーした後に一度セットアップが必要です。このセットアップは2つのプロジェクトがあるので、それぞれセットアップを実行が必要です。, これまでは、スプレッドシートのデータをガッツリ取得してそのまま、HTML側へ渡してあげてました。その為データは2次元配列の形式で取得する事になります。二次元配列ですので、データはdata[行番号][列番号]で指定する事で、そのセルの値を取り出す事が出来ます。, HTML側表示時に、sheetdataを実行して返ってきた値をjson[0][3]として指定し、値を取り出しています。今回はpointの列の値を表示しているので、4列目(スクリプトでは0から数えるので3を指定する)の値をこれで取り出せています。pointが4列目にあることを知っていなければならないのです。ここがちょっと面倒な部分ですね。, JSON形式で返して上げてそこから値を取り出してみましょう。JSONの場合のHTML側での値の取得方法は、json[0].pointにて値を取り出す事が可能です。ですので列番号ではなく列の名前で取得が出来るのが特徴です。addressの列の値が欲しいならば、json[0].addressとなります。また[0]はレコードの番号なので、2レコード目ならば、json[1].addressとなります。, 取得したデータをJSON形式に加工してあげています。そのデータをJSON.stringifyにてHTML側へ渡しています。その為別途タイトル行のデータはtitleとして取得させています。これがポイントです。, HTML側表示時にbackjson()を実行して、JSONデータを取得しています。データの1行目のpointデータは、json[0].pointとして直接取得出来ます。pointの列を直接列の名前で指定が出来るので楽ちんですね。コードがわかりやすくなります。こうする事で、今後のGoogle Apps Scriptでのウェブアプリケーション作成が捗ります。, 特にスプレッドシートの列を入れ替えたりした場合には、コードの修正が不要になる点と、列を追加しても追加部分の対応だけコードを修正すれば済むので、列の位置を意識する必要がないので、アプリを拡張しやすくなります。配列では全てのコードを修正しなければならないので、結構これが苦労します。, また、申請フォームのような場合、HTML側でJSON形式にするコードで整形してあげられれば、GAS側でデータ書き込み時に配列を組む時にも、コードがわかりやすくなります(データの追加などは配列形式でなければならない為)。, Google Apps Scriptでフォームを作らず、別の外部アプリケーションから利用出来るようにWeb APIとして配信する事も可能です。スプレッドシートのデータを他のアプリから参照がしやすくなるので、便利です。この場合、doGet()だけでなくdoPost()なども利用する事で、Web APIがより設計しやすくなります。, また、Web APIなので通常はdoGet()などに引数を渡して、特定の行でマッチするレコードの特定の値を返せ といった事も可能になります。詳細についてはまた別途doGetとdoPostの項目で取り上げたいと思います。今回は単純に全データを返すようにしています。, 今回はHTML側が存在しません。doGetでアクセスした場合、HTML ServiceではなくContent Serviceクラスを使って文字列を出力する仕組みになっています。出力をする時に予め作っておいたデータをJSON.stringifyにてアウトプットしています。その為、backjson()の中では、JSON.stringifyで渡す必要はありません。, この時、.setMimeTypeにてJSONのMIME TYPEを指定する必要があります。JSONのMIME TYPE指定は「ContentService.MimeType.JSON」となります。, 結構前からリリースされてる、綺麗に整形されたJSONファイルとして出力してくれるものが、SheetAsJsonです。使い方はとても簡単で以下のような手順です。現在はGithubでもメンテされています。, そのGETのパラメータですが、以下のようなURLを組み立てて送信します。公開URLにスプレッドシートのIDと対象のシート名をつなげて投げてあげると、JSONに変換されて返ってくるという前項とは少しタイプの違う仕組みですね。, https://script.google.com/macros/s/ウェブアプリケーションのID/exec?id=スプレッドシートのID&sheet=シート名, よって、ウェブアプリケーションとして導入をしただけでは、何もしてくれませんので、必ずパラメータを後ろにつなげて送ります。WebAPIのようなものですね。すると、JSONデータが返って来る仕組みです。これをNode.jsなどでfetchして、値を取り出すわけです。返ってくるデータは以下のような感じになります。, […] GAS側からJSON化して渡すには、スプレッドシートのデータをJSONで取得するを参考にしましょう。主要なコードは以下の通り。 […], このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。. 次のようなスプレッドシートの表から. photo credit: Snow via photopin (license), Google Apps Scriptを使ってチャットワークに天気予報を定期的に送るシステムを作成中です。, Google Apps Scriptでlivedoor天気情報にAPIリクエストを送る方法、またその予備知識としてのWeb APIやJSON形式などについて解説をしました。, 今回はその続きで、JSON形式で受け取ったデータの中から必要な情報を取り出し、チャットワークに送る部分を組んでいきたいと思います。, UrlFetchApp.fetchメソッドでlivedoor天気情報へのAPIリクエストをして、そのレスポンスに対してJSON.parseメソッドで配列に格納をします。, 7行目~9行目のLogger.logの代わりに、配列jsonから欲しい情報を取り出して、送信する文字列として整えてチャットワークに送るという処理を加えればOKですね。, 今日・明日の天気は1日3回、5時、11時、17時に発表され、最新の情報に更新します。, それに合わせて、本システムでも5~6時、11~12時、17~18時に動作するようにしたいと思います。, ちょっとパっと見ではわかりづらいですが、波括弧で階層構造になっているのがわかっていただけると思います。, プロパティ名は「publicTime」で階層としては1階層目にあり、JSON形式では, 値を取り出したいのであれば、配列の指定でキーをダブルクォーテーションで指定すればOKです。, 都市名は東京だとわかっているのでわざわざ配列jsonから取得する必要はないのですが、練習ということで…やってみましょう。, プロパティ名は「location」そしてその配下の「city」で、json形式では, 二階層目に欲しい値が存在しているのであれば、プロパティをそれぞれたどるように配列のキーを指定すればOKです。, 今までの流れでいうと、json[“forecasts”][“telop”]と指定すれば良さそうですが、それではうまくいきません。, という点が異なっています。そして、その波括弧がそれぞれ今日、明日、明後日の天気予報を格納しているようですね。, [“telop”]の前に今日、明日、明後日のいずれかを配列番号で選択してあげる必要がありまして、今日であれば, イベントトリガーを以下のように、日タイマーの午前5時~6時、午前11時~正午、午後5時~6時に設定すれば、livedoor天気情報の更新と合わせてチャットワークに通知されるようになります。, これでlivedoor天気情報のAPIで受け取ったJSON形式で受け取ったデータの中から必要な情報を取り出し、チャットワークに送ることができるようになりました。, 前回の記事でもお伝えしましたが、Web APIを使えば、様々なサービスから多様なデータを取得することができます。, 次回ですが、チャットワークにメッセージを送るだけでなく、様々な操作をしていくためのにチャットワークAPIの使い方導入編をお送りします。, ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。, チャットワークに天気予報を通知するを目標に、今回はWeb APIとは何か、Google Apps Scriptでlivedoor天気情報のWeb APIからJSON形式のデータを取得してくる方法です。, ポータルサイトlivedoorが提供するコンテンツの使い方、Q&A。良くある質問、キーワード検索で、疑問が解決できます。, LINE株式会社が運営するポータルサイト。速報性に加え独自の切り口を誇る「ライブドアニュース」、日本最大のブログサービス「ライブドアブログ」ほか、厳選した情報をお届けします。, Google Apps ScriptでチャットワークAPIを活用するための最初の一歩, チャットワークAPIを駆使すると、様々な操作を行うことができるようになります。今回はチャットワークAPIの概要とGoogle Apps Scriptでの簡単な使い方についてお伝えします。, GASとVue.jsでWebアプリを作る方法をお伝えしています。今回は、google.script.runオブジェクトを使用しつつ、GASのWebアプリでクライアント側JavaScriptからサーバー側の関数を呼び出す方法です。, Google Apps ScriptでBotを作りながらその基本を学ぶシリーズです。今回は、関数から別の関数を呼び出す方法です。functionの書き方、引数、仮引数、戻り値などについても解説します。, GASでGoogleカレンダーの複数の予定をまとめて登録するツールを作成しています。今回は、Google Apps Scriptで関数の引数を省略した場合の挙動とデフォルト値の設定方法についてです。, 「ノンプログラマーのためのスキルアップ研究会」は、ノンプログラマーがスキルを学び合うコミュニティです。今回は先日開催されたノンプロ研「初心者講座GASコース第4期卒業LT大会」についてのレポートをお送りします。, エクセルVBAでチャットワークAPIを利用する方法をお伝えしております。POSTメソッドによるHTTPリクエストによりチャットワークにメッセージを送信する簡単なプログラムを紹介していきます。, GASとVue.jsでWebアプリケーションを作成する方法をお伝えしています。今回はGASとVue.jsによるWebアプリでv-forディレクティブを使って繰り返しで要素を描画する方法をお伝えします。, 当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。, マネーフォワードクラウド請求書の請求書一覧の全件をスプレッドシートに書き出すスクリプト, GASでマネーフォワードクラウド請求書の請求書一覧をスプレッドシートに書き出す方法.

Jquery Required 追加 5, ハイエース 車 中泊 エンジン 4, 回る ランプシェード 作り方 13, ハイキュー 占い ツクール 夢小説 この 辛さ あなた 達には � 5, Jww 人物 シルエット 34, Ark ステゴ 放浪 8, Unity Rider 日本語化 5, 台風8号 暴風域 確率 7, Windows10 付箋 バックアップ 4, Xperia Xz2 Premium 有線lan 7, Dixim Play セール 40, 日向坂 メッセージ 頻度 2020 13, Angular Material Vertical Splitter 5, アクロイド殺し 映像化不可能 なぜ 9, 明日への扉 旅立ちの日に 似てる 7, 起動時 Chkdsk キャンセル 8, 幼児 パン 市販 10, Mhxx ガロア ライト 6, ネイチャー ハイク Vik2 9, Sdカード アイフォン コンビニ 6, フューエル ワン サビ取り 11, 大学生 ノート ボールペン 4, 恋と弾丸 ネタバレ 7話 5, グローブ 湯もみ 持ち込み 5, 高齢出産 妊娠報告 両親 6, Amazon Kindle 読み方 6, 猫 腎臓病 末期 症状 4, ブラウンダスト セト 15 10, Autocad Dwg Launcher 開かない 10, 足の裏 違和感 土踏まず 8, Word 章 番号 インデント ずれる 22, Ryzen ノートパソコン Asus 14, 慶應 留年 就職 11, シンフォギア パチンコ 続編 7, Oracle Database Express Edition 11g Release 2 For Windows X64 8, ラインブロック 復縁 彼女 9, Xperia 1 Iii 5, Outsystems 論理 削除 4, Gas トリガー オーナー変更 5, あつまれ どうぶつの森 パソコン 版 17, 同人小説 Word 設定 4, コーカサスオオカブト 黒土 タイミング 18, アウトバウンド ネットワーキング Firebase 4, 14画 は る 32, ヒカルの碁 10年後 Youtube 4, 石井一久 吉本 退職 46, 東松山 猫 保護 4, Ff14 ゴールド ソーサー フェスティバル 2020 5, デスノート アニメ 27話 10, Jabra Speak810 Ms Uc 違い 5, エクセル フィルター 矢印 押せない 6, ゴルフ 時計 右手 4, プロミネンス 三 年 レッスン 1 4, 黒髪 垢抜ける 髪型 30代 4, 阪神 木浪 高校 5, 高校化学 教科書 目次 6, ベビー袴 男の子 型紙 4, ポケモン剣盾 クララ セイボリー 56, Ha36s アルトワークス 1型 2型 違い 26, ツインレイ シンクロ 特徴 14, Piaa ホーン 消費電力 4, Kindle Fire Wifi 接続できない 4, カワセミ 撮影ポイント 愛知県 5, ほん怖 死神 武田真治 37, Wolcen: Lords Of Mayhem Wiki 6, 無限の住人 アニメ 感想 19, 剣道 日本一 高校 8, 黒い砂漠 ヒストリア 新 ルート 8, テスラ 購入 後悔 12, X270 Ssd 交換 9, アメリカ It企業 ビッグ5 4, ライフプラン シミュレーション ソフト おすすめ 7, Dsds スマホ トリプルスロット 8, Https Www Pixiv Net Discovery 4, Parallels Desktop Ubuntu 日本語入力 8, Cod Mw スカウトサイトクラス 16, Minecraft Pe Plane Addon 38, 香川照之 息子 ツイッター 12, Oracle 表領域 拡張回数 確認 4, ソードシールド オニ シズク モ 7, Crown 教科書 音声 23, Teraterm キーボード入力 できない 21, Itunes ボイスメモ Iphoneに戻す 8, 神奈川 高校サッカー リーグ 仕組み 9, マイン クラフト 戦車 作り方 15, ソフトバンク Mms ダウンロード Apn設定 27, 徳島 イタリアン 個室 18, 1 Https Www Youtube Com Watch V Qcl0xsut41a 5, 派遣社員 食事 誘う 10, 井口理 オールナイトニッポン 2月 5, 神戸 ゴッドドア バスケ 25, スカイリム コンソール 移動 7, クロール 泳ぎ方 子供 6, Xperia 1 Ii フィルム 4, Windows10 印刷 薄い Canon 10, Linux Less 略 6, シュガーラスク 作り方 フランスパン 6,

Write a comment