<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>API | imakat.com</title>
	<atom:link href="https://imakat.com/tag/api/feed/" rel="self" type="application/rss+xml" />
	<link>https://imakat.com</link>
	<description>工夫と改善で人生をちょっと豊かに</description>
	<lastBuildDate>Sat, 13 Sep 2025 06:02:54 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://i0.wp.com/imakat.com/wp-content/uploads/2023/07/cropped-80d64ecd340db4e2ca3224859b04caed.png?fit=32%2C32&#038;ssl=1</url>
	<title>API | imakat.com</title>
	<link>https://imakat.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">160909258</site>	<item>
		<title>【小団体のIT】スマホから5つのSNSへ、アプリを開かないで送信する方法~AppSheet~</title>
		<link>https://imakat.com/2022/05/06/14993/</link>
		
		<dc:creator><![CDATA[imakat]]></dc:creator>
		<pubDate>Fri, 06 May 2022 07:35:14 +0000</pubDate>
				<category><![CDATA[デジタル]]></category>
		<category><![CDATA[ものづくり]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[SNS]]></category>
		<category><![CDATA[ワンタッチ]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Gメール]]></category>
		<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[中途半端な規模]]></category>
		<category><![CDATA[GAS]]></category>
		<category><![CDATA[LINE]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Push7]]></category>
		<category><![CDATA[Blogger]]></category>
		<guid isPermaLink="false">https://imakat.com/?p=14993</guid>

					<description><![CDATA[2023.7.31：TwitterがXに移行。APIへの影響が不明。2023.2.16追記：TwitterAPIの有料化の発表がありましたが、投稿bot1500個までは無料化へ自動移行とのことで、多くの場合、問題なさそう [&#8230;]]]></description>
										<content:encoded><![CDATA[
<hr class="wp-block-separator has-text-color has-key-color-color has-css-opacity has-key-color-background-color has-background is-style-wide"/>



<p>2023.7.31：TwitterがXに移行。APIへの影響が不明。<br>2023.2.16追記：TwitterAPIの有料化の発表がありましたが、投稿bot1500個までは無料化へ自動移行とのことで、多くの場合、問題なさそうです。<br>2022.5.13更新：Twitterを追加。無料使用に留める場合は、API v2を利用すること。</p>



<hr class="wp-block-separator has-text-color has-key-color-color has-css-opacity has-key-color-background-color has-background is-style-wide"/>



<p>＜分散通知をスマホから実行する＞<br><span class="fz-12px"><a href="https://imakat.com/page-220506/" target="_blank">別ページで表示</a></span></p>



<img decoding="async" src="https://docs.google.com/drawings/d/e/2PACX-1vR8WAJSVQk0EV-LtoZdCv8V5n9CnwkUHGAVB1RmMiV05BKu9OWCDJoi8WOuEPfcwWKfEanrFwYxRqft/pub?w=1440&amp;h=1080">



<hr class="wp-block-separator has-text-color has-key-color-color has-css-opacity has-key-color-background-color has-background is-style-wide"/>



<p>メールとブログを含めるとSNSよりソシアルメディア(Social Media)という方が正しいのでしょうが、単語として分かりにくいので、ここでは「情報を配信するツール」としてSNSと呼ばせてもらいます。</p>



<p>さて、昨年5回に亘って、「分散通知の仕組みを作る」として、電子メール、LINE、Push7、Bloggerのそれぞれへ、<strong><span class="marker">アプリを開かないで送信する仕組み</span></strong>、を説明しました。</p>



<p>しかし、スマホで操作すると、GoogleスプシをChromeのPCサイトから扱う、という方法は非常に扱いづらいことは分かっていました。</p>



<p>今回、それを、かなり<strong><span class="marker">実用的に改善しました</span></strong>ので紹介します。</p>



<p>実は、AppSheetとGASの連携については、Google内で開発が進んでいますので、半年先には、もっと簡単に色々できるようになっているかもしれません。</p>



<p>しかし今回私が改善したいこと自体が、さほど、高度な技術を要求することでもありませんので、現状の技量でアプローチしてみます。</p>



<p></p>



<p></p>



<h3 class="wp-block-heading">ポイント解説</h3>



<h4 class="wp-block-heading">＜1＞ 人の手作業は、文を作成修正する→送りたいSNSを選び送信する、ただそれだけ。</h4>



<p>前回の通知方式では、SNSアプリ別にGoogleSSとGASを組み合わせて、GoogleSSを立ち上げて内容を確認して、送信ボタンを押す、これをSNSアプリ毎に行う方式でしたが、今回は、GoogleSSは一つのファイルにして、その中へ、GASを各アプリ別に組み込む、という方法にしました。</p>



<p>その各アプリ別のGASは、前回の通知方式で作ったものを、ほぼそのまま流用しています。<br>作業手順は以下のようになります。</p>



<p>＜作業手順＞<br><span class="fz-12px"><a href="https://imakat.com/page-220507/" target="_blank">別ページで表示</a></span></p>



<img decoding="async" src="https://docs.google.com/drawings/d/e/2PACX-1vQWnxlTE0kL7hQM7qSqi0qRi0U5C5GMRkO8XM-D5EdpkDVyPPPfuzfDKy5GulyJMi1QOOylwOqPxkoT/pub?w=1440&amp;h=1080">



<p>前回は、各GoogleSSを立ち上げて、投稿ボタンを押す、これを繰り返すという手間がありました。それがAppSheetの以下の２つのメニューで完結するようにしました。なお、AppSheetについては、<a href="https://imakat.com/2022/02/27/14686/" target="_blank">こちらの投稿</a>の中で、概略触れています。解説している日本語の書物は殆ど見かけませんが、唯一<a rel="noopener" target="_blank" href="https://www.amazon.co.jp/Google-AppSheet-ではじめる-ノーコード開発入門-掌田津耶乃/dp/4899775199/ref=asc_df_4899775199/?tag=jpgo-22&amp;linkCode=df0&amp;hvadid=524423533651&amp;hvpos=&amp;hvnetw=g&amp;hvrand=18135569281701901134&amp;hvpone=&amp;hvptwo=&amp;hvqmt=&amp;hvdev=c&amp;hvdvcmdl=&amp;hvlocint=&amp;hvlocphy=1009446&amp;hvtargid=pla-1290663459033&amp;psc=1&amp;th=1&amp;psc=1">これ<span class="fa fa-external-link external-icon anchor-icon"></span></a>くらいです。使っているうちにだんだん慣れてくるとは思います。</p>



<p>AppSheetアプリの実際の動きは、以下の動画をご覧ください。</p>



<div style="position:relative;">
<iframe src="https://player.vimeo.com/video/707215784?&#10;title=0&amp;&#10;byline=0&amp;&#10;muted=0&amp;&#10;portrait=0&amp;&#10;autopause=0" style="position:absolute;top:0;
left:0;
width:100%;
height:100%;
" frameborder="0" allow="autoplay;
fullscreen" allowfullscreen="">
</iframe>
</div>
<script src="https://player.vimeo.com/api/player.js">
</script>
<p>このビデオは無音です。Twitterは組み込む前です。</p>



<p>以上のような動きになりますが、その中で、通知の作成及び修正の画面が以下です。追加または修正した行が、通知の送信の対象となります。ですから、今現在適当なテスト内容になっていますが、例えば、「避難情報通知用」などテンプレートとして用意しておくのもいい方法です。</p>



<figure class="wp-block-image size-large is-resized"><a href="https://imakat.com/rd.php?id=8rJroonM.png" target="_blank"><img decoding="async" src="https://imakat.com/rd.php?id=8rJroonM.png" alt="" style="width:407px;height:705px"/></a></figure>



<p></p>



<figure class="wp-block-image size-large is-resized"><a href="https://imakat.com/rd.php?id=GAW83tyP.png" target="_blank"><img decoding="async" src="https://imakat.com/rd.php?id=GAW83tyP.png" alt="" style="width:406px;height:697px"/></a></figure>



<p></p>



<figure class="wp-block-image size-large is-resized"><a href="https://imakat.com/rd.php?id=lCFUGKdp.png" target="_blank"><img decoding="async" src="https://imakat.com/rd.php?id=lCFUGKdp.png" alt="" style="width:407px;height:700px"/></a></figure>



<p>上図を表示しているデータは、以下です。sheet1には順次新しい投稿が書き込まれて、それを更新日時でSORTしたものがsheet2へ入り、その最新行からsheet3をコピーしています。</p>



<p></p>



<figure class="wp-block-image size-large"><a href="https://imakat.com/rd.php?id=IoyR23xN.png" target="_blank"><img decoding="async" src="https://imakat.com/rd.php?id=IoyR23xN.png" alt=""/></a><figcaption class="wp-element-caption">Twitterについては、投稿の重複は拒否されるので、その点の工夫が必要。</figcaption></figure>



<p>「拡張機能」→「Apps Script」の中に記述したスクリプトは、全部掲載します。</p>



<p><a href="https://imakat.com/page-220507-2/" target="_blank">複数SNSの送信GAS</a></p>



<h4 class="wp-block-heading">＜２＞　Twitterを使えるようにする。</h4>



<p><strong>Twitter</strong>ですが、災害発生時には最も実績のある情報発信ツールであることは、東日本大震災他大災害の時を振り返れば明らかです。ただ、利用者が多いからか、イタズラや不正利用を防止せねばならず、APIのような、外部からアクセスできるツールに対する許可は、敷居が高い印象がありました。</p>



<p>しかし、申し込んでみると結構すんなりいけます。最近、APIが、APIv1.1からAPI v2にバージョンアップしました。どうもAPI v2から直接使う方法が分かりにくく、色々調べて、TwitterAPI v2をEssentialから<strong>Elevated(無料）</strong>へ引き上げる方法が良さそうです。</p>



<figure class="wp-block-image size-large is-resized"><a href="https://imakat.com/rd.php?id=uZeL8qSA.png" target="_blank"><img decoding="async" src="https://imakat.com/rd.php?id=uZeL8qSA.png" alt="" style="width:584px;height:668px"/></a></figure>



<p></p>



<p>引き上げる際に、許可が必要で、用途に関する質問に英語で返答する必要がありますが、簡単な英語で書いても大丈夫かと思います。数多く解説のブログが書かれていますが、例えば<a rel="noopener" target="_blank" href="http://pineplanter.moo.jp/non-it-salaryman/2021/07/17/gas-twitter/">このブログ<span class="fa fa-external-link external-icon anchor-icon"></span></a>は分かりやすいです。</p>



<p><br>引き上げておいて、<br>OAuth1.0aのみにチェック<br>OAUTH1.0A SETTINGS でRead and writeにチェック<br>CallbackURI/RedirectURL ,WebsiteURL,Terms of service,Privacy policyは、https://twitter.com<br>と設定します。</p>



<figure class="wp-block-image size-large is-resized"><a href="https://imakat.com/rd.php?id=CuVR3D75.png" target="_blank"><img decoding="async" src="https://imakat.com/rd.php?id=CuVR3D75.png" alt="" style="width:576px;height:653px"/></a></figure>



<p><br>Twitterは、同一内容の複数投稿は拒否するようです。その辺りは、GoogleSSのカラムに前回の投稿内容をコピーして今回の投稿内容と比較して、同じ場合は、tweet.gs内でルーチンを通さないようにしました(上のGASを参照）。</p>



<p><br></p>



<h4 class="wp-block-heading">＜３＞　AppSheetで作ったアプリはプロの仕上がり感</h4>



<p>AppSheetは、各SNSのロゴをイメージとして読み込んで表示するだけのことですが、上の図のように、プロが作ったようなアプリになります。そこが素晴らしい。</p>



<p>課題点というか仕方ない点としては、各SNS別に送信履歴を残していない点です。これはまあ、各アプリ側では当然履歴として残っていますのでそれで十分でしょう。</p>



<p>現状は、各SNS側の画面から通知文の修正は出来ないようになっています。しかし、基本となる通知文を作った後で、それを各アプリ側でコピーして、各アプリ側で修正して送信する、という流れの方が素直かも知れません。<br>このあたりは、AppSheetとGASの連携の開発が進むと、すぐに可能になりそうです。しかしながら、今回のものでも、特に不便は感じません。</p>



<h4 class="wp-block-heading">＜４＞頻繁にテスト出来ない悩み</h4>



<p>この複数通知の仕組みを作って思う課題、課題というか悩みは、頻繁にテスト出来ないことです。なにしろ、緊急通知が目的ですから、滅多に通知なんか発信されるものではないです。テスト用にそれぞれIDやアドレスを作ったとしても、実用としては常に本番用のアドレスにしておかなければ意味がありません。そんなわけで、実際に全部テストできるのは、年に一度の「防災訓練の日」の活動の一環としてテスト送信させてもらう、ということになります。</p>



<p>そこがちょっと不便なところ。</p>



<p>でも多くの方は、そんな緊急発信のためではなく、いわゆる普通の「伝言板」「回覧板」的な使い方になると思いますので、十分、応用できると思います。</p>



<h4 class="wp-block-heading">＜５＞まとめ〜中途半端な規模の人たちのために〜懸念材料</h4>



<p>地方自治体で多いのは、「LINEに加入してアプリを入れて活用してください」型です。正直言ってLINEを嫌いな人もいるはず。しかし最近、だんだん、LINEに限定させず複数のSNSの中から、ユーザーが選択できる形式も増えてきました。</p>



<p>スタッフの充実した都市の役所や大規模組織なら色々そうした工夫ができるでしょう。逆に、本当に小さい規模なら電話一本、伝言でOKでしょう。しかし<strong>大多数は、そのどちらとも言えない中途半端な規模</strong>の自治会、中途半端な規模のNPO。公民館はあるが住み込みは置けない。電話もない。自治会としてインターネット契約をすることは結構面倒なので、個人に契約者になってもらおうとすると、その個人がいつまで肩代わりしてくれるか保証はない。そうなると、Googleなどのサービスも無料で使えるものが中心となります。そんな人たちのために、少しでもお役に立てば嬉しいです。</p>



<p>懸念材料としては、Twitter Botに有料化の動きがあること。GASやAppSheetの連携が自動化処理と見做されると停止されるか有料化されることを懸念します。つまり無料で使えるインターネットサービスは、減少していく方向にあるでしょう。</p>



<p>以上です。</p>


]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">14993</post-id>	</item>
		<item>
		<title>【GAS】分散通知の仕組みを作る〜Googleアプリ、GAS及びAPIの活用　STEP5: ブログ(Blogger)への投稿・全体まとめ(5/5)</title>
		<link>https://imakat.com/2021/10/15/14054/</link>
		
		<dc:creator><![CDATA[imakat]]></dc:creator>
		<pubDate>Fri, 15 Oct 2021 02:33:29 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[デジタル]]></category>
		<category><![CDATA[GAS]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Blogger]]></category>
		<category><![CDATA[Googleスプレッドシート]]></category>
		<guid isPermaLink="false">https://imakat.com/?p=14054</guid>

					<description><![CDATA[＜分散通知の仕組みを作る　STEP5: ブログ(Blogger)への投稿＞別ページで表示 ブログは、時系列の掲示板であり、その中には、今回取り上げている緊急通知も含めていいと考えています。記事の性格は、楽しい思い出づくり [&#8230;]]]></description>
										<content:encoded><![CDATA[
<hr class="wp-block-separator has-text-color has-key-color-color has-css-opacity has-key-color-background-color has-background is-style-wide"/>



<p>＜分散通知の仕組みを作る　STEP5: ブログ(Blogger)への投稿＞<br><span class="fz-12px"><a href="https://imakat.com/page-11646-4-2-3-2/" target="_blank">別ページで表示</a></span></p>



<img decoding="async" src="https://docs.google.com/drawings/d/e/2PACX-1vS9vKizc6xV7tI7qoc0Xd0k1DHE11asFoRTPnnevUBwBrBuY4Eiy6GDSQ694HDKRS9TTmpMy_YBzZ1W/pub?w=1440&amp;h=1080">



<hr class="wp-block-separator has-text-color has-key-color-color has-css-opacity has-key-color-background-color has-background is-style-wide"/>



<p>ブログは、時系列の掲示板であり、その中には、今回取り上げている緊急通知も含めていいと考えています。記事の性格は、楽しい思い出づくりとは異なりますが、緊急かつ重要な情報は、どこにでも飛び込んでいいものと考えます。</p>



<p>今回、無料のブログの選択には、多少悩みました。この種のサービスは打ち切りになることが多いからです。その中から、Googleと相性がいいもの、シンプルなもの、であるBloggerを選択しました。Bloggerは他のサービスへの移動、例えばWordPressへの移動などについても、説明が数多くあることも安心です。</p>



<p></p>



<h3 class="wp-block-heading">ポイント解説</h3>



<h4 class="wp-block-heading">＜1＞ GoogleSSへの取り込み</h4>



<p>流れとしては、通知文GoogleSS→Blogger送信用GoogleSS→Blogger、です。APIは使いません。Bloggerにはメール投稿機能が備わっており、それを利用します。</p>



<p>Blogger送信用GoogleSSの画面は以下です。</p>



<figure class="wp-block-image size-large"><a href="https://imakat.com/rd.php?id=lC1H29W9.png" target="_blank"><img decoding="async" src="https://imakat.com/rd.php?id=lC1H29W9.png" alt=""/></a></figure>



<p>この画面には、Googleフォームへ入力した通知文GoogleSSが取り込まれるため、内容を確認するだけです。問題がなければ、「Blogger投稿」ボタンを押します。</p>



<p><strong>通知文の読み込み：</strong></p>



<p>IMPORTRANGE関数を使います。<br>読み込みたいGoogleSSのURLが、下記のようになっていたとして、</p>



<pre class="wp-block-code"><code>https:&#47;&#47;docs.google.com/spreadsheets/d/【この部分】/edit#gid=0</code></pre>



<p>【この部分】を以下の場所に当てはめてください。sheet1は実際のシート名、A10,A12のところも実際のセル位置を当てはめてください。</p>



<p>Bloggerでは、タイトル、本文と関係リンク、の２データを、通知文GoogleSS から読み込んで、このBlogger用GoogleSSへ取り込みます。</p>



<pre class="wp-block-code"><code>=IMPORTRANGE("【この部分】","sheet1!A10")
=IMPORTRANGE("【この部分】","sheet1!A12")</code></pre>



<h4 class="wp-block-heading">＜2＞GAS記述</h4>



<p><strong>GASの記述：</strong></p>



<p>このままコピペください。<span class="bold-red">赤字</span>は、例示です。</p>



<p>STEP2の電子メールと、考え方は同じです。</p>



<p>・<span class="bold-red">nihonnofujisan001</span>は、google個人アカウントです。<br>・投稿用のメールアドレスが、Bloggerから与えられます。その時【任意の文字列】を設定します。<br></p>



<pre class="wp-block-code"><code>function sendMail(){
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getActiveSheet();
  const from = '<span class="bold-red">nihonnofujisan001</span>@gmail.com';
  const to = '<span class="bold-red">nihonnofujisan001</span>.【任意の文字列】@blogger.com';
  const subject = sheet.getRange(<span class="bold-red">3,1</span>).getValue();
  const body = sheet.getRange(<span class="bold-red">5,2</span>).getValue();
GmailApp.sendEmail(to, subject, body);
}
</code></pre>



<h4 class="wp-block-heading"><strong>＜３＞なぜ30分以内？：</strong></h4>



<p>ブログ（ネット掲示板）をユーザーが見るのを30分以内、としているのは、ブログには、Push7からRSS連携：</p>



<p><strong><span class="bold-red">赤字</span></strong>は、例示です。</p>



<pre class="wp-block-code"><code>https://<span class="bold-red">nihonnofujisan001</span>.blogspot.com/feeds/posts/default</code></pre>



<p>を貼り付けています。こうしたRSSフィードは、様々なサービスがあるので、もっと短い巡回時間のものもあると思います。一応、Push7の巡回は30分以内となっています。30分以内は標準的かと思います。</p>



<p>ちなみに私は、Push7を、ブログ更新とは切り離した緊急通知用と、ブログ更新とリンクした一般通知用の２箇所に貼り付けています。</p>



<h4 class="wp-block-heading">＜４＞全体のまとめ</h4>



<h5 class="wp-block-heading">１）配信数の制約に注意。緊急通知だけなら、会員700人以下なら無料で運用できそう。</h5>



<p></p>



<p></p>



<figure class="wp-block-table"><table><tbody><tr><td>サービス名</td><td class="has-text-align-center" data-align="center">無料：同時に1回何通まで</td><td class="has-text-align-center" data-align="center">無料：日・月の合計数の上限</td><td class="has-text-align-center" data-align="center">想定最大通知数</td><td class="has-text-align-center" data-align="center">想定利用者上限(歩留り70%)</td></tr><tr><td><a rel="noopener" target="_blank" href="https://support.google.com/mail/answer/22839?hl=ja#zippy=%2C送信できるメールの制限数に達しました">Googleグループメール<span class="fa fa-external-link external-icon anchor-icon"></span></a> </td><td class="has-text-align-center" data-align="center">500通</td><td class="has-text-align-center" data-align="center">500通/日</td><td class="has-text-align-center" data-align="center">週2回</td><td class="has-text-align-center" data-align="center">175人</td></tr><tr><td><a rel="noopener" target="_blank" href="https://line-sm.com/blog/lineofficial_message_count/">LINE公式アカウント<span class="fa fa-external-link external-icon anchor-icon"></span></a></td><td class="has-text-align-center" data-align="center"></td><td class="has-text-align-center" data-align="center">1000通/月</td><td class="has-text-align-center" data-align="center">週2回</td><td class="has-text-align-center" data-align="center">88人</td></tr><tr><td><a rel="noopener" target="_blank" href="https://push7.jp/blog/faq/">Push7<span class="fa fa-external-link external-icon anchor-icon"></span></a></td><td class="has-text-align-center" data-align="center"></td><td class="has-text-align-center" data-align="center">5000通/月</td><td class="has-text-align-center" data-align="center">週2回</td><td class="has-text-align-center" data-align="center">437人</td></tr><tr><td></td><td class="has-text-align-center" data-align="center"></td><td class="has-text-align-center" data-align="center"></td><td class="has-text-align-center" data-align="center">合計</td><td class="has-text-align-center" data-align="center">700人</td></tr></tbody></table></figure>



<p>現在、私は、全世帯が、3つから１つだけ選んで登録するとして、600〜700世帯を想定しています。トータルとしては、この３つのサービスで、お金をかけずに続けそうですが、自由に選んでもらうとLINEに集中するのでは。LINEの無料のワクは非常に小さいです。後でPush7やメールへ変更を促すことになるのでしょうかね。いずれにしても、緊急通知は一方通行、仮に事態が集中したとしても週２〜３回に収まるのではないでしょうか。</p>



<p>緊急通知の配信基準を設けておく必要があるでしょう。</p>



<p>例として、</p>



<hr class="wp-block-separator has-css-opacity"/>



<p>・水害・土砂災害における避難警戒レベル３以上の発令に伴い、自治体から、当該地域あてに発出された情報。</p>



<p>・地域の災害対策組織の長（自治会長や町内会長など）が決定した配信情報。例えば、道路の陥没、建物の倒壊、断層など上部自治体の危険箇所情報からこぼれ落ちた地域住民向けの情報。</p>



<p>・事件事故の発生に伴い、警察消防から発出された、地域住民への警戒情報。</p>



<p>・その他、自治体から要請があり当該長が了承した緊急通知。例えば、同報無線の能力不足、故障時の支援も含む。</p>



<hr class="wp-block-separator has-css-opacity"/>



<p>など。何がどう重なるか分かりませんが、不幸が重なったとしても週２〜３回で収まると、私は想像します。</p>



<p></p>



<p>しかし世帯数が1,000世帯を超えるようだと、レンタルサーバーを使うなど、有料にならざるを得ないのでは。</p>



<p>理想的には、500〜600世帯ごとに、このような仕組みが運営できれば、機動的でしょう。</p>



<h5 class="wp-block-heading">２）異なったサービスだが、操作方法は統一する。その上で、一つ一つ、送信成功を確かめながら送るのがいい。</h5>



<p>今回の、分散通知ですが、使用頻度が非常に低いです。防災などの緊急通知が主目的。そんな災害は頻繁にはないです。ですから、わかりやすく言えば、<strong>この仕組みの使い方を忘れた頃、突然、使うことになる</strong>のだと想像します。従って、覚える操作方法は一つだけにすること。そしてそれを、それぞれのサービスに適用して、送信出来るようにしておくのが重要だと考えます。</p>



<p></p>



<h5 class="wp-block-heading">3)  GoogleSSをアプリ毎に別ファイルにした理由</h5>



<p>アプリ側はそれぞれ異なる会社のサーバーになります。全体が一箇所のトラブルに巻き込まれないように、GoogleSSは、シート別ではなく、ファイル別に用意しました。</p>



<h5 class="wp-block-heading">4）目標：緊急通知を、スマホから、１３分以内で、７００人へ送る仕組みを、タダで作る。</h5>



<p>今回、この目標を達成できたような気もしていますが、実用上、どうなるかはわかりません。</p>



<p>今回、私のブログを読んで下さった方は、私同様、開発費もタダにすることができると思います。これからも工夫改善は続きます。</p>



<p><a href="https://imakat.com/2021/10/13/13863/" target="_blank">STEP1へ戻る</a></p>



<p>以上</p>


]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">14054</post-id>	</item>
		<item>
		<title>【GAS】分散通知の仕組みを作る〜Googleアプリ、GAS及びAPIの活用　STEP4: Push7のプッシュ通知(4/5)</title>
		<link>https://imakat.com/2021/10/15/14021/</link>
		
		<dc:creator><![CDATA[imakat]]></dc:creator>
		<pubDate>Thu, 14 Oct 2021 22:33:17 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[デジタル]]></category>
		<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[GAS]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Push7]]></category>
		<category><![CDATA[プッシュ通知]]></category>
		<guid isPermaLink="false">https://imakat.com/?p=14021</guid>

					<description><![CDATA[＜分散通知の仕組みを作る　STEP4: Push7のプッシュ通知＞別ページで表示 LINEや電子メールは双方向の会話の機能があるので、「りんごちゃん」などニックネームで構わないが何らかのID情報が配信側に伝わります。しか [&#8230;]]]></description>
										<content:encoded><![CDATA[
<hr class="wp-block-separator has-text-color has-key-color-color has-css-opacity has-key-color-background-color has-background is-style-wide"/>



<p>＜分散通知の仕組みを作る　STEP4: Push7のプッシュ通知＞<br><span class="fz-12px"><a href="https://imakat.com/page-11646-4-2-3/" target="_blank">別ページで表示</a></span></p>



<img decoding="async" src="https://docs.google.com/drawings/d/e/2PACX-1vQbOAqUsZ3ihHYbzYqnutFIBTTZN5oywF3wjFlkdzol2WoBJJEUkPHV0fhSYG_Szb22ufvPz2YRWk85/pub?w=1440&amp;h=1080">



<hr class="wp-block-separator has-text-color has-key-color-color has-css-opacity has-key-color-background-color has-background is-style-wide"/>



<p>LINEや電子メールは双方向の会話の機能があるので、「りんごちゃん」などニックネームで構わないが何らかのID情報が配信側に伝わります。しかし、利用者側には、それすら知られたくない人もいます。</p>



<p>Push7は、ニックネームすら入力不要、です。敷居が低いです。</p>



<p>Push7に似た仕組みは、既にネット上に溢れています。ふだんサイトを見ていると、ヒョコッと顔を出して、「登録しませんか」と誘いかけられ、即座に、×、拒否、NO、不要を返事する、それが条件反射になっているあれです（ブラウザの設定でポップアップを禁止に出来ると思いますが）。</p>



<p>今私は、緊急通知を準備しているので、ポップアップ禁止設定にしたおかげで目にも触れない、というのでは困ります。そこで、サイトの文面の中で、説明を加えて、ボタンを押してもらって申し込んでもらう手順にしています。このPush7のサイトへの設置方法の説明は、長くなるので、この記事では、割愛します。</p>



<p></p>



<p>このSTEP4における配信作業の流れでは、Push7のアプリは何も触りません。</p>



<p>Push7のアプリをスマホから触りたくない理由ですが、プッシュ通知を打ち込むまでの画面の操作が非常に扱いにくい点があります。アプ通知文がSTEP1で作成済みならば、STEP2、STEP3とやることはほぼ同じです。ChromeからGoogleSSを立ち上げる-&gt;PC版サイトを選ぶ-&gt;iphoneを横向きにする-&gt;閉じるをクリック-&gt;内容を一応点検したら「Push7投稿」ボタンをクリック。という手順。</p>



<p>Push7のいい点は、管理する側における、利用者の登録や削除については、作業は何もないです。</p>



<p>実に簡単です。</p>



<h3 class="wp-block-heading">ポイント解説</h3>



<h4 class="wp-block-heading">＜1＞ GoogleSSへの取り込み</h4>



<p>Push7で送信する内容のうち、毎回変更されるのは、タイトル、関係リンク、本文の３個です。</p>



<p></p>



<figure class="wp-block-image size-large"><a href="https://imakat.com/rd.php?id=lC1H29W9.png" target="_blank"><img decoding="async" src="https://imakat.com/rd.php?id=lC1H29W9.png" alt=""/></a></figure>



<p>この画面には、Googleフォームへ入力した通知文が取り込まれるため、内容を確認するだけです。問題がなければ、「Push7投稿」ボタンを押します。</p>



<p><strong>通知文の読み込み：</strong></p>



<p>IMPORTRANGE関数を使います。<br>読み込みたいGoogleSSのURLが、下記のようになっていたとして、</p>



<pre class="wp-block-code"><code>https:&#47;&#47;docs.google.com/spreadsheets/d/【この部分】/edit#gid=0</code></pre>



<p>【この部分】を以下の場所に当てはめてください。sheet1は実際のシート名、A10,A12,A14のところも実際のセル位置を当てはめてください。</p>



<p>Push7では、タイトル、関係リンク、本文の３データを、通知文GoogleSS から読み込んで、このPush7用GoogleSSへ取り込みます。</p>



<pre class="wp-block-code"><code>=IMPORTRANGE("【この部分】","sheet1!A10")
=IMPORTRANGE("【この部分】","sheet1!A12")
=IMPORTRANGE("【この部分】","sheet1!A14")</code></pre>



<h4 class="wp-block-heading">＜2＞APIの取得とGAS記述</h4>



<p><strong>APIの取得：</strong></p>



<p><a rel="noopener" target="_blank" href="https://push7.jp">Push7<span class="fa fa-external-link external-icon anchor-icon"></span></a>は、親切に、API設置方法などが解説されています。</p>



<p><a rel="noopener" target="_blank" href="https://push7.jp/docs/development/api/">Push7 APIの利用<span class="fa fa-external-link external-icon anchor-icon"></span></a>　←この中の「Webプッシュ通知を送信するAPI」の項目が参考になります。</p>



<p>Push7は、メールアドレスとパスワードで登録できます。次に、プロジェクトを例えば「ABC会_通知」などとつけて設置すると、そのプロジェクトごとに、下記のように、App NumberとAPI Keyが発行されます。</p>



<figure class="wp-block-image size-large"><a href="https://imakat.com/rd.php?id=ACBb1sf3.png" target="_blank"><img decoding="async" src="https://imakat.com/rd.php?id=ACBb1sf3.png" alt=""/></a><figcaption class="wp-element-caption">Push7 API : API NumberとAPI Keyを取得する。</figcaption></figure>



<p></p>



<p></p>



<p><strong>GASの記述：</strong></p>



<p>このままコピペください。<span class="bold-red">赤字</span>は、例示です。</p>



<p>・iconは、ここに指定した画像が選択されて通知に表示されます。<br>・urlは、表示された通知画面をクリックすると移動するサイトです。<br>・disappear_instantlyは、falseにすると画面の表示にタッチされるまでは表示が残ります。trueにすると数秒後には消えます。</p>



<pre class="wp-block-code"><code>const notifyPush7 = () =&gt; {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getActiveSheet();
  const apikey = "【上画像のAPI Key】"
  const appno = '【上画像のApp Number】'
  const url = 'https://api.push7.jp/api/v1/【上画像のApp Number】/send';
  const headers = {
    'Content-Type' : 'application/json; charset=UTF-8',
    'Authorization' : 'Bearer ' + apikey,
 };
const data = {
'title': sheet.getRange(<span class="bold-red">3,1</span>).getValue(),
'body' : sheet.getRange(<span class="bold-red">7,1</span>).getValue(),
'icon' : "<span class="bold-red">https://***.com/****.jpeg</span>",
'url' :  sheet.getRange(<span class="bold-red">5,1</span>).getValue(),
'apikey' : "【上画像のAPI Key】",
'disappear_instantly' : false,
//'transmission_time": "2021/10/10 10:10"
//'query' : true,
}
const options = {
  'method' : 'post',
  'headers': headers,
  'payload': JSON.stringify(data)
};
UrlFetchApp.fetch(url,options);
}
</code></pre>



<p>具体的には、以下の、アプリによる送信画面を見て、対応関係を確認ください。</p>



<p>この「タイトル」「URL」「内容」の部分を、STEP1で作った通知文GoogleSSから、自動的に取り込むプログラムになっています。</p>



<p></p>



<figure class="wp-block-image size-large"><a href="https://imakat.com/rd.php?id=4yzyetYc.png" target="_blank"><img decoding="async" src="https://imakat.com/rd.php?id=4yzyetYc.png" alt=""/></a><figcaption class="wp-element-caption">Push7アプリの新規プッシュ通知の画面</figcaption></figure>



<p>次回のSTEP5は、Googleが提供するブログであるBloggerへ、同じ通知文を投稿する方法を説明します。割と簡単です。</p>



<p><a href="https://imakat.com/2021/10/15/14054/" target="_blank">STEP5</a></p>



<p>以上</p>


]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">14021</post-id>	</item>
		<item>
		<title>【GAS】分散通知の仕組みを作る〜Googleアプリ、GAS及びAPIの活用　STEP3: LINEのメッセージ配信(3/5)</title>
		<link>https://imakat.com/2021/10/14/13982/</link>
		
		<dc:creator><![CDATA[imakat]]></dc:creator>
		<pubDate>Thu, 14 Oct 2021 04:17:55 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[デジタル]]></category>
		<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[GAS]]></category>
		<category><![CDATA[LINE]]></category>
		<category><![CDATA[API]]></category>
		<guid isPermaLink="false">https://imakat.com/?p=13982</guid>

					<description><![CDATA[＜分散通知の仕組みを作る　STEP3: LINEのメッセージ配信＞別ページで表示 iPhoneのLINE公式アカウントアプリには、「メッセージを配信する」機能があり、扱い易いです。しかしその扱いやすさの程度ですが、アプリ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<hr class="wp-block-separator has-text-color has-key-color-color has-css-opacity has-key-color-background-color has-background is-style-wide"/>



<p>＜分散通知の仕組みを作る　STEP3: LINEのメッセージ配信＞<br><span class="fz-12px"><a href="https://imakat.com/page-11646-4-2-2/" target="_blank">別ページで表示</a></span></p>



<img decoding="async" src="https://docs.google.com/drawings/d/e/2PACX-1vTTOSyFp0XDoz9QBQBS44O-VEXF_XlteV-PbnRZfwkVEKQh46dMZSSaKU0WBkYrOta-yO6kKzUVhhGG/pub?w=1440&amp;h=1080">



<hr class="wp-block-separator has-text-color has-key-color-color has-css-opacity has-key-color-background-color has-background is-style-wide"/>



<p>iPhoneのLINE公式アカウントアプリには、「メッセージを配信する」機能があり、扱い易いです。しかしその扱いやすさの程度ですが、アプリを開く-&gt;「メッセージ配信する」をクリック-&gt;追加をクリック-&gt;テキストを選ぶ-&gt;テキストをコピペする-&gt;次へ-&gt;「すべての友だち」を選択して配信。という手順。</p>



<p>確かにほとんど悩むことなく進めますが、やはり、余分なことを神経を使いながら覚える、そんな印象。</p>



<p>このSTEP3における配信作業の流れでは、LINEのアプリは何も触りません。通知文がSTEP1で作成済みならば、STEP2とやることはほぼ同じです。ChromeからGoogleSSを立ち上げる-&gt;PC版サイトを選ぶ-&gt;iphoneを横向きにする-&gt;閉じるをクリック-&gt;内容を一応点検したら「LINE投稿」ボタンをクリック。という手順。</p>



<p>LINEのいい点は、管理する側では、友だちの登録や削除などの作業は、何もないです。</p>



<p>実に簡単です。</p>



<h3 class="wp-block-heading">ポイント解説</h3>



<h4 class="wp-block-heading">＜1＞ GoogleSSへの取り込み</h4>



<p>送信する内容はコンパクトに、LINEの吹き出し１個だけです。</p>



<p></p>



<figure class="wp-block-image size-large"><a href="https://imakat.com/rd.php?id=Bi9yU0XL.png" target="_blank"><img decoding="async" src="https://imakat.com/rd.php?id=Bi9yU0XL.png" alt=""/></a></figure>



<p>この画面には、Googleフォームへ入力した通知文が取り込まれるため、内容を確認するだけです。問題がなければ、「LINE投稿」ボタンを押します。</p>



<p><strong>通知文の読み込み：</strong></p>



<p>IMPORTRANGE関数を使います。<br>読み込みたいGoogleSSのURLが、下記のようになっていたとして、</p>



<pre class="wp-block-code"><code>https:&#47;&#47;docs.google.com/spreadsheets/d/【この部分】/edit#gid=0</code></pre>



<p>【この部分】を以下の場所に当てはめてください。sheet1は実際のシート名、A20のところも実際のセル位置を当てはめてください。</p>



<p>LINEでは、吹き出し枠一つの中に、タイトル〜本文〜関係リンクを一まとめにして入れています。</p>



<pre class="wp-block-code"><code>=IMPORTRANGE("【この部分】","sheet1!A20")</code></pre>



<h4 class="wp-block-heading">＜2＞APIの取得とGAS記述</h4>



<p><strong>APIの取得：</strong></p>



<p>LINE公式アカウントを取得すると、そのユーザーIDで、下記のLINE Developersにログインして、LINE Messaging APIのアクセストークンを取得します。</p>




<a rel="noopener" target="_blank" href="https://developers.line.biz/ja/services/messaging-api/" title="LINE Developers" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/imakat.com/wp-content/uploads/cocoon-resources/blog-card-cache/dc3da295cadbd7f1ebc1c79124500834.jpg?resize=160%2C90&#038;ssl=1" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">LINE Developers</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://developers.line.biz/ja/services/messaging-api/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">developers.line.biz</div></div></div></div></a>



<p></p>



<p><strong>GASの記述：</strong></p>



<p>このままコピペください。<span class="bold-red">赤字</span>は、例示です。</p>



<pre class="wp-block-code"><code>const notifyLine = () =&gt; {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getActiveSheet();
// LINE DevelopersのChannel Access Tokenを【アクセストークン】へ入れます。
const ACCESS_TOKEN = "【アクセストークン】"
// LINE Developersの自分のユーザーIDを【ユーザーID】へ入れます。
const USER_ID = '【ユーザーID】'
const url = 'https://api.line.me/v2/bot/message/broadcast';
const headers = {
  'Content-Type' : 'application/json; charset=UTF-8',
  'Authorization': 'Bearer ' + ACCESS_TOKEN,
};

const message = sheet.getRange(<span class="bold-red">3,1</span>).getValue();
const data = {
  'messages' : &#91;
    {
      'type':'text',
      'text':message,
    }
  ]
};

const options = {
  'method':'post',
  'headers': headers,
  'payload':JSON.stringify(data)
};

UrlFetchApp.fetch(url,options);
}</code></pre>



<p>「みんな」に対してメッセージ配信する場合は、上記のように、APIの最後の部分にbroadcastを使います。</p>



<p>iPhoneで使う時は、STEP2と同様に、上記のGoogleSSのLINE投稿ファイルを、今度はiPhoneで呼び出してから「PC版サイトを見る」を選択-&gt;iPhoneを横向きにする-&gt;上段に出る警告を「閉じる」-&gt;「LINE投稿」のボタンを押す。と、同じ手順になります。</p>



<p>次のSTEP4では、Push7の新規プッシュ通知を、Push7のアプリを何も触らないで実行する方法を説明します。考え方はLINEと同じです。</p>



<p><a href="https://imakat.com/2021/10/15/14021/" target="_blank">STEP4</a></p>



<p>以上</p>


]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">13982</post-id>	</item>
	</channel>
</rss>
