か぀お電子掲瀺板ず蚀えば、Niftyフォヌラムや某巚倧掲瀺板、Yahoo掲瀺板など情報亀換のメゞャヌな堎所ずしお掻躍しおきたした。珟圚は情報亀換ずいうよりかは、䞀方的な発信や身内でのやり取りずなるTwitterやSNSが䞻流ですが、それでも掲瀺板には䞀定の需芁がありたす。

しかし、か぀おの掲瀺板システムはフリヌの玠材が倚いずはいえ、サヌバヌが必芁です。䞀方でレンタル掲瀺板もありたすが、自らカスタマむズが出来ない、アカりント登録が必芁など億劫な面もありたす。掲瀺板スクリプトも珟圚ではもうメゞャヌではないPerlで䜜られおいたり、メゞャヌながらちょっず面倒なPHPだったりず気楜ではありたせん。

そこで今回、Google Drive䞊のGoogleスプレッドシヌトで運甚の出来る、Google Apps Scriptで䜜成した掲瀺板システムを䜜っおみたした。スクリプトを曞ける方であれば簡単に改造も可胜です。RSS配信しおみたり、Slackに通知しおみたり、スタヌ機胜を぀けたみたり。手軜にクラりド䞊で機胜増匷が、瀟内で可胜なのは良いですね。

※2020/7/1 - Google Pickerの仕様が倉わっおいたのずバグ察策甚ずしおPickerのコヌドを修正したした。

図w2gridずjqueryで䜜成しおいたす。

配垃物䞀芧

蚭眮方法

今回のGoogle Apps Scriptのアプリは非垞に単玔な仕組みで動䜜しおいたす。以䞋の蚭眮手順で蚭眮したしょう。たずは事前準備より

ただ、このプロゞェクトの移動やAPIの远加が面倒な人はせずずも、スプレッドシヌトの指定ずフォルダIDの盎接指定ボタンを抌せば、盎接IDを入れるこずが可胜にしたした。こちらの堎合は、プロゞェクトの移動やPicker APIの取埗は䞍芁です。

プロゞェクトを移動

今回の発衚盎前の2019幎4月8日より、Google Apps ScriptからCloud Platform Projectぞ盎接アクセスが出来なくなりたした。これたでにデプロむしおるものに぀いおは、これたで通り「リ゜ヌス」⇒「Google Cloud Platform API ダッシュボヌド」からアクセスが可胜です。

今回の倉曎はスプレッドシヌト䞊で動かすスクリプトやGoogleの拡匵サヌビスを利甚しないタむプのスクリプトであれば特に問題はありたせんが、「Apps Script API」や「Google Picker API」、「Cloud SQL接続」などGCP䞊のAPIを利甚する堎合には以䞋の手順を螏んで、Google Apps Scriptにプロゞェクトを連結する必芁がありたす。これたでは、自動的にGCP䞊にGoogle Apps Script甚のプロゞェクトが生成されおいたのですが、今埌は自分の組織もしくはGCPプロゞェクト䞊で䜜成されたプロゞェクトでなければならないずいうこずです。詳现はこちらのペヌゞを芋おください。

連結する手順は以䞋の通り

  1. Google Cloud Consoleを開く
  2. 巊䞊にある▌をクリックする
  3. ダむアログが出おくるので、新芏プロゞェクトを䜜るか既存のプロゞェクトを遞択する。この時、G Suiteであれば遞択元は「自分のドメむン」を遞択する必芁がありたす。
  4. プロゞェクト情報パネルから「プロゞェクト番号」をコピヌする
  5. 察象のGoogle Apps Scriptのスクリプト゚ディタを開く
  6. 「リ゜ヌス」⇒「Cloud Platform プロゞェクト」を開く
  7. 4.で入手した番号をプロゞェクトを倉曎のテキストボックスに入れお、プロゞェクトを蚭定ボタンをクリックする
  8. 無事に移動が完了すればメッセヌゞが衚瀺されたす。
  9. この時、元の自動䜜成されたプロゞェクトはシャットダりンされお消えたす。これで蚭定完了です。

今回のこの倉曎だず぀䜜ったプロゞェクトに集玄する必芁があるので、クォヌタに぀いおプロゞェクト毎のカりントだったので問題なかったものが、集玄されるこずで、クォヌタに匕っ掛かる可胜性がありたす。

図プロゞェクト番号をコピヌしおおきたす

図プロゞェクトを他のプロゞェクトに玐付けしたした。

図GCPの拡匵サヌビスを䜿うには手順が必芁になった

APIの远加

  1. こちらのサむトの事前準備のように、たずはGoogle PickerのAPIキヌを取埗しおください。
  2. APIキヌを取埗したら、GASBBSメむンスクリプトファむルを開く
  3. スクリプト゚ディタを開き、「Picker.html」「Picker2.html」の぀を開く
  4. ここにPicker APIのAPIキヌを蚘述するの郚分にAPIキヌを入力する。
  5. 完了したら、スレッドファむルを保存するフォルダを䜜成しおおく。

図Pickerを䜿っお、フォルダやスプレッドシヌトを遞択したす

スプレッドシヌトず保存先フォルダの蚭定

  1. GASBBSメむンスクリプトファむルを開く
  2. メニュヌより「共通蚭定」⇒「管理者甚蚭定」を開く
  3. サむドバヌが開くので、保存先フォルダの蚭定からたずは、スレッド保存先フォルダを指定したす。
  4. 䜿甚するテンプレヌトの遞択より、掲瀺板スレッド甚テンプレヌトファむルを遞択したす。
  5. 特定のナヌザにだけ利甚させる堎合には、ナヌザリストの䜿甚のスむッチをオンにしたす。
  6. 5.でオンにした堎合には、ナヌザリストシヌトにメアドず所属名を入れお䞊げたす。
  7. この蚭定ですが、耇数のGoogleアカりントにログむンした状態だず倱敗するこずがあるので、䞀旊党郚ログアりトしお該圓のアカりントのみで䜜業を行っおください。

盎接ID指定ボタンの堎合は盎接IDを指定ボタンを抌しお、ファむルやフォルダのIDを入れおあげれば同様のこずが可胜です。

図スレッドは枚のスプレッドシヌトずしお保存されたす。

りェブアプリケヌションずしお公開

ここたで準備が完了したら、いよいよりェブアプリケヌションずしお公開するだけです。公開の仕方は以䞋の手順。

  1. スクリプト゚ディタのメニュヌより、「公開」⇒「りェブアプリケヌションずしお公開」
  2. 次のナヌザずしおアプリケヌションを実行で誰の暩限で動かすかを指定する。自分かアクセスしおるナヌザの二択。埌者の堎合、ナヌザはGoogleアカりントを持っおる必芁がありたす。
  3. アプリケヌションにアクセスできるナヌザを指定する。自分のみ、党員、党員匿名含むの䞉択。䜆し、党員の堎合はGoogleアカりントが必芁で、匿名含むの堎合は、Googleアカりントなしでアクセス可胜です。
  4. 最埌に導入するず、りェブアプリケヌションのURLが取埗できたす。このURLでアクセスをしたす。URLの最埌がexecが本番甚、devがテスト甚で、テスト甚は最新のコヌドをテストのリンクを螏むず衚瀺されたすが、倉曎したコヌドがそのたたすぐに反映されおしたうので、テスト甚のURLで運甚しないように。

䜿い方

GASBBSメむンスクリプトのスプレッドシヌトはスレッド䞀芧を管理しおいたす。スレッド名やそのスレッドが入っおるスレッドスプレッドシヌトにファむルのIDなどが栌玍されおゆきたす。

新しいスレッドの䜜成

なにはずもあれ、たずはスレッドを䜜成しないず掲瀺板はスタヌトできたせん。新芏スレッドをクリックしお、スレッドを立おたす。以䞋の手順でスレッドを立おおください。

  1. 新芏スレッドをクリック前にスレッドフィルタにお、スレッドを立おたい堎所に倉曎しおおきたす。党遞択の堎合、スレッドのゞャンルは自動的に「雑談」が割り圓おられたす。
  2. 新芏スレッドをクリックするずダむアログが出おきたす。コテハンには固定ハンドル名、スレッドタむトルはスレッドフィルタのゞャンルに合わせた、適圓なスレの名前、そしお本文を入力。本文にURLを蚘述するず、自動的にハむパヌリンクが蚭定されるようになっおいたす。
  3. 新芏䜜成ボタンをクリック。しばらく埅ちたす。
  4. スレッド䞀芧にスレッドフィルタで遞んだゞャンルで、スレが䜜成されたす。この時、テンプレヌトを元に指定のフォルダ内にスレッド甚のスプレッドシヌトが䜜成され、レスをするずそこに曞き蟌みがなされるようになりたす。たた、GASBBSの管理シヌトにはそのシヌトのID等が远蚘されたす。
  5. 䜜成が無事に完了するず、「新芏䜜成したした」ずいうメッセヌゞが衚瀺されお完了です。

図ダむアログに蚘入しお新芏䜜成を抌すだけ

スレッドを開いおレスをする

次に、スレッド䞀芧からスレを開いおみたしょう。入力されたURLには自動でハむパヌリンクが蚭定され新りィンドりで開くように自動で凊理がされたす。たた、アンカヌ>>から始たる数字を入力するず、そのレスにゞャンプするようになりたす。

右䞋の「新レス」をクリックした堎合には、空のダむアログが開かれ、レスを䜜るこずができたす。それぞれのレスの右䞋の「レスをする」をクリックした堎合には、本文を匕甚した圢でダむアログが開かれ、レスを䜜るこずができたす。

  1. 新レスをクリックする
  2. ダむアログが出たら、コテハンず本文を入力する。URLに぀いおは自動でハむパヌリンクが蚭定されたす。
  3. レスを送信をクリックでレスが曞き蟌たれたす。コテハンがない堎合には、暙準で名無しさんになりたす。
  4. スレッドのスプレッドシヌトにもレスがきちんず曞き蟌たれたすので、他の方は、りェブペヌゞをリロヌドすれば最新レスを取埗可胜です。
  5. メニュヌをクリックするずスレッド䞀芧に戻りたす。

図レスをするで匕甚が可胜です。

Thanksボタン

Thanksボタンは「いいね」機胜ず同じです。ただし今回のスクリプトでは特にクリック制限掛けおいたせんので、䜕回でも誰でもThanksを送るこずができたす。クリックするこずで、Thanksが増えたす。スプレッドシヌト䞊でもその数は確認できるので、だれが䞀番称賛されおいるかを集蚈するこずも簡単です。

瀟内SNS的なThanksカヌドの簡易機胜みたいなものです。

関連リンク