ハースストーンの国内イベント情報がTwitterのタイムラインに流れてきたら目につく機会も増えいろいろ便利ではないか、というお話を頂きちょっくら考えてみました。
普段わたしがTwitterで海外の大会情報とかをツイートしているのは、調べた情報をTweetdeckから予約投稿でお報せしているだけです。でも告知ツイートを毎度毎度の手作業とかメンドーですよね。ご提案にあったとおり、大会情報を自動でツイートするBotみたいなアカウントがあれば確かに良いのかもかな~と思いました。
まず最初にTwitter単体でそうした機能を果たすBotの作成が出来るかどうかを考えましたが、たとえばイベントの運営者全てがTwitterで特定のタグを使用するようにルール付けでもされていない限り無理だろうと判断しました。コミュニティ独自の自然発生的なローカルルールを利用出来る場合は可能性があるかもしれません。
さてハースストーンではというと、有志が運営しているGoogleイベントカレンダーに国内イベントの情報が集積されています。ただしGoogleイベントカレンダーとTwitterはそれぞれ独立した異なるWebサービスであるため、このふたつを直接連携させて目的の機能を果たすことはできません。
そこで思いついたのが、IFTTT(イフト)という海外のWebサービスを噛ませてGoogleカレンダーの予定をTwitterアカウントでツイートさせる方法です。このIFTTTを経由するWebサービスの連携は別件で利用していたので、BOTツイットァーの設定ぐらいヨユーやんけ~ぐらいに考えてましたがさにあらず。意外なとこでつまづくポイントがあるもんです。
そのわたしが頭を悩ませた問題も含めて、Googleカレンダーを利用したTwitterの連携を行う方法をこの記事で解説していきます。このIFTTTを経由するWebサービスの連携方法をひとつ覚えれば、自分用にカスタマイズするのも簡単なのでとっても便利になりますよ。また前提知識として、『ハースストーン国内イベントカレンダー』を改めて紹介するのもよい機会でしょうね。
Index
▼ 国内イベントTwitterBOTの機能
▼ ハースストーンイベントカレンダーの紹介
- ハースストーンイベントカレンダーとは
- 自分のGoogleカレンダーに表示させる
- マイカレンダーにスケジュールをコピーする
- 通知の設定
▼ IFTTTでGoogleカレンダーとTwitterを連携
- IFTTT(イフト)の利用
- IFTTTアカウントの作成
- 連携の設定手順
- わたしがハマった落とし穴
▼ ちょっとしたあとがき
▲Index
国内イベントTwitterBOTの機能
まずは今回作成したTwitterBOTについて紹介しましょう。
このTwitterBOTのツイートはすべて、オフラインイベント運営チームMeeplestoneとそのほか有志メンバーや大会運営者によって更新されているGoogleカレンダーの情報に基づいています。BOT自体は全自動で機能しますが、大元の情報源がコミュニティのメンバー達によってこまめに更新されていることによって成り立つBOTというわけです。
参照リンク:ハースストーンイベントカレンダー [Google]
◆ 機能その①
新しいイベントがカレンダーに登録されるとお知らせします。これはカレンダーの管理権限を持つGoogleアカウントなら誰が書き込んでも勝手に作動します。ただし毎週行われる繰り返し設定のイベントには反応しません。あくまで新規登録時のみです。
#ハースストーン 新しいイベントだ!楽しくパァーっとやろう! FANBAT第1回大会 September 25, 2016 at 11:00AM https://t.co/lksMeLUza8
— HS国内イベントのオヤジBOT (@HS_JP_event) 2016年9月15日
◆ 機能その②
カレンダーに登録されたイベントの開始時刻になるとお知らせします。ただし酒場のオヤジは時間にアバウトなので約15分ぐらい激しく前後します。
#ハースストーン なにやらお楽しみが始まるみたいだぞ! [Asia]ランダム効果カード禁止大会 : https://t.co/Kus9Nxh6PH
— HS国内イベントのオヤジBOT (@HS_JP_event) 2016年9月15日
◆ 機能その③
週に3回ぐらいの頻度で国内ハースストーンイベントカレンダーへのリンクをツイットします。
いつだって余分な席はあるもんだ。今週のハースストーン国内イベントにあんたもぜひ参加してくれ! https://t.co/9SYZpyDRSi #ハースストーン
— HS国内イベントのオヤジBOT (@HS_JP_event) 2016年9月15日
▲Index
ハースストーンイベントカレンダー
お次はTwitterBOTの情報ソースである国内イベントカレンダーについて。
国内の大会情報についてはご存知の方も多いかと思われますが、オフラインイベント運営チームMeeplestoneがGoogleカレンダーに大会情報を登録し公開してくれています。カレンダーへの情報登録は有志が手作業で行っており、ハースストーンの日本語ローカライズ以降から現在に至るまでマメに更新が続けられています。
元をたどればいまや電子の妖精と化したあのnemukeさんが同じ日程でイベントが被ることを減らし、ひいては国内イベントの注目度を高めることを目的として、最初に楽天のWebサービスでイベントカレンダーの運営を始めました。(楽天ってチョイスはどうなのnemukeさんとか思ったけど言い出せなかった)
nemukeさんがBlizzardに就職し電脳の海に消えたあとは、nirikuさん達のような有志があとを継ぎ、Googleカレンダーに場を移していまでも続いている国内コミュニティの伝統みたいなものです。
[参照リンク] ハースストーンイベントカレンダー
イベント名をクリックすると詳細がポップアップ表示されますね。ここからマイカレンダーにイベントをコピーとかも出来たりします。それでは、このイベントカレンダーを自分用に便利に使うTipsをいくつか紹介していきましょう。
自分のGoogleカレンダーに表示させる
皆さんそれぞれのGoogleアカウントのカレンダーに国内イベント情報を表示させる手順を解説します。
人生ノープランをモットーにしているため下図の通りわたしの今月の予定はまっしろです。
◆ 方法その①
『+Googleカレンダー』(画像の場所)をクリック
ポップアッポが表示されるのでカレンダーの追加を選択
◆ 方法その②
カレンダーのアドレスURLから追加することも出来ます。まず自分のGoogleカレンダーページ左側に表示されている『他のカレンダー』の▼マークをクリック、『URLで追加を選択』
以下のiCalリンクをコピペして完了。
[https://calendar.google.com/calendar/ical/550gr91k38jq5fliclud8jhnn8%40group.calendar.google.com/public/basic.ics]
ご覧のようにまっしろだったわたしの予定がハースストーンのイベントで埋まりました。ヤッター!
マイカレンダーにスケジュールをコピーする
ただし、先述の手順では『他のカレンダー』として『ハースストーンイベントカレンダー』のスケジュールを表示させているだけです。これを自分のマイカレンダーに加えるには一手間が必要なのです。まず『ハースストーンイベントカレンダー』で表示されているイベント名をクリックし『マイカレンダーにコピー』を選択
カレンダーのドロップダウンリストに自分のカレンダー名が表示されていますね。ここで保存をすることで、自分のマイカレンダーに『ハースストーンイベントカレンダー』から予定をコピーできます。このように自分が興味あるイベントをピックアップして、『マイカレンダー』に予定を加え管理していくのがGoogleカレンダーの機能的な使い方かと思います。
通知の設定
Googleカレンダーは予定を忘れないために様々な通知方法を設定できる点が非常に便利です。特にGoogleの提供するサービスならではということで、メールでも通知してくれるのはありがたいですね。この通知設定は個別の予定とカレンダー全体で二通りの設定が可能です。
◆ 個別の予定の通知
予定の詳細ページを開くと『通知』というセクションが見つかると思います。ここで『通知を追加』を選択します。するとドロップダウンリストで『メール』と『通知』の二通りの通知方法が選択でき、予定が始まるどのぐらい前にその通知を送信するかを設定できます。また、通知方法は複数設定できるのでリマインダーとして活用するのに便利です。
『通知』を選択すると、ブラウザ上に下図のように通知がポップアップします。
『メール』ではcalendar-notificationのアドレスからあなたのGmail宛にメールが送信されます。
◆ カレンダー全体の通知設定
カレンダーの予定全てに通知を設定したい場合は、目的のカレンダーの▼マークをクリックし『通知を編集』を選択し設定画面へ移動します。
こちらの設定画面では、個別に予定の通知が設定されていない予定すべてに適用される通知が設定できます。他の人とカレンダーを共有している場合は、最新情報の通知方法も設定しておくとトラブル防止になるでしょう。
▲Index
IFTTTでGoogleカレンダーとTwitterを連携
IFTTT(イフト)の利用
先述の通りGoogleカレンダーをきっかけにしてツイットァーでアクションを起こすという連携を実現するために、webサービス同士を連携させる『IFTTT』を利用します。このWebサービスは「if this then that」、つまり『this』のWebサービスをトリガーにして『that』のWebサービスがアクションを起こすという意味の略称です。
この記事の例では『Googleカレンダー』をトリガーに、『Twitter』がアクションするように設定するわけですね。
この設定を行ったことで、今回作成したTwitterBOTは以下2点のアクションを自動的に実行します。
①. 新しいイベントがカレンダーに追加されたらイベント名・内容・開催地・時間・リンクなどの詳細情報をツイット
②. カレンダーに登録されたイベントが開始時間になったら、イベント名や該当イベントの詳細へのリンクを知らせる
このように複数のWebサービス同士を連携させる手順の設定を、IFTTTでは『recipe(レシピ)』と呼んでいます。
参照リンク:Wikipedia - IFTTT
◆ 手順の概略
- IFTTTのアカウント作成
- カレンダーにイベントが追加されたらツイットするレシピの作成
- カレンダーに登録されたイベント開始時間になったらツイットするレシピの作成
◆ 注意事項
この連携動作を行うにはIFTTTにGoogleカレンダーへのアクセスを許可することと、Twitterでアプリ連携の認証が必要になります。他のWebサービスと連携する際においてプライバシーに懸念が無いかを十分に確認し利用してください。
IFTTTアカウントの作成
まずはIFTTTへアクセスしアカウントを作成します。
(リンク)Sign up - IFTTT
初回のアカウント作成時に表示されるインストラクションはテキトーに選択して飛ばして構いません。
なお、IFTTTからメールへのお知らせが要らない場合はメニューの『Preferences』から設定を行ってください。
連携の設定手順
アカウント作成が問題なければ早速レシピ作成にとりかかります。まず『My Recipes』をクリック
『Create a Recipe』からレシピ作成開始
◆ レシピその1 イベント開始で自動的にお知らせ
レシピの起点(トリガー)となるWebサービスを設定します。『this』をクリック
対応Webサービスの一覧が表示されます。『Search Channels』に検索語句を入力します
『Google』と入れれば候補が絞りこまれます。ここで『Google Calendar』を選択
『Google Calendar』を使用したTrigger(トリガー)設定を行います。ここではイベント開始をトリガーにするため、一番左の『Any event starts』を選択
『Create Trigger』をクリックで確定
お次はトリガーによってアクションを起こす『that』の部分を設定します
同じように『Search Channels』から『Twitter』を検索
『that』に指定した『Twitter』が行うアクションを設定します。ここではツイートを行うのが目的なので、『Post a tweet』を選択
ここでは自動で投稿されるツイートを編集できます。初期設定はイベントタイトルしか呟きません
入力ボックスの右上に表示されるフラスコの画像から、『Google Calendar』に登録されているイベント情報の内容のどこを呟くかを設定できます
なお、『#ハースストーン』とか『イベントが始まるぞ!: 』のように直接文字を入力すると定型文扱いになります
最後に『Creat Recipe』で作成完了。ツイート内容は後からでも編集できます
こんな感じでツイットされます。『Description(説明)』部分にURLが入っているとその短縮リンクが自動的に表示されます
◆ レシピその2 イベント登録で自動的にお知らせ
レシピ1の手順と同様に、『this』と『that』を設定していきます。
まず『this』に『Google Calendar』を選択
そしてこのレシピ2ではトリガーに『Any new event added』を選択
『this』の次は『that』の設定。またTwitterを選択し、『Post a tweet』のアクションを指定
ツイートされる内容を編集します。『Starts』でイベントの日付と開始時刻が自動的に入力されます
こんな感じでツイットされます。なお日付が英語表記なのはどうしようもないっぽいです
つぶやく内容を後から編集する際は、『My Recipes』から自分の作成したレシピ一覧を表示させ、該当レシピの画像かえんぴつマークをクリックすれば設定画面へ移動します
以上で二つのレシピ設定が完了しました。あとはほっとくだけでGoogleカレンダーに新規イベントが追加されたり、イベントが始まる時間になると勝手にTwitterBotが作動します。
わたしがハマった落とし穴
とまぁこのように少々手間ですが設定そのものは簡単です。だもんでわたしもチョロい仕事だと考えていましたが問題発生。このIFTTTで連携したGoogleカレンダーがトリガーになるのは、『マイカレンダー』に登録された情報だけだったのです。ここ重点ね。
つまりわたし個人のGoogleアカウントで連携する場合は、『ハースストーンイベントカレンダー』から『マイカレンダー』へと予定をコピーしなければ機能しなかったのです。
うっそ~んとか思いつつ頑張って調べてみたものの、どうしても『他のカレンダー』から『マイカレンダー』へ予定を自動的にコピーする方法が判りませんでした。Google Appsのプログラムに博識ならば方法は見つかるでしょうがわたしにはそんな知識はありません。そもそも、IFTTT経由でツイートされるリンクが『ハースストーンイベントカレンダー』宛でなければ意味が無いのでした。
結局のところ、『ハースストーンイベントカレンダー』を情報源にしたTwitterBOTの設定には、このGoogleカレンダーの所持者であるGoogleアカウントの持ち主の協力が不可欠だったのです。
で、オフラインイベント運営チームMeeplestoneの運営者であり国内大会のキャスターとして定評のあるnirikuさんに泣きつくことに。いずれにせよカレンダーの所有者に許可を取る必要はありましたが、自力で解決できず他の人の手をわずらわせることになったのはちょっとガッカリきました。
@solarne 乱交おじいちゃんヘルプミー
— GoNinja (@hs55ninja) 2016年9月14日
▲Index
ちょっとしたあとがき
以上までがTwitterBOTを作成するまでの顛末です。この記事はTwitterBOTの紹介、ハースストーンイベントカレンダーの紹介、IFTTTの解説と設定方法という3本立ての内容で長ったらしくわかりにくい記事となってしまいました。
あえてこのような構成としたのは、そもそもどうしてこの記事を書いたかという理由によるものです。この記事の目的は上記の内容を紹介することに加えて、いつか他の誰かが同じような問題に行き当たったとき、その道案内となってくれればということも期待しています。
もうちょっと言えば、これを自分がいなくなったときのために書き残し、国内ハースストーンコミュニティの誰かに引き継いでもらいたいたかったのです。この自分がいなくなった時の準備というのは、仕事でも私生活でもとっても大事なんですよね。
べつに近々ハースストーンから離れる予定があるわけじゃありませんが、人間は先のことなんてわからないものです。わたしも明日になったらすべてを投げ捨てアメリカへ飛びルート66をハーレーダビッドソンで爆走してるかもしれません。人生の転機はいつ訪れるかわかったもんじゃありません。
だもんでわたしはこの3年間でハースストーンに関わってから学んだことは、何でもかんでもコミュニティに伝え残したいと思っています。とくにもったいぶるようなものは何にも無いですしね。
また、このIFTTTを利用するWebサービスの連携は様々な可能性があります。それはハースストーンに留まらず、オーバーウォッチなど他のゲームコミュニティでも用途が考えられるでしょう。そうして他の誰かが目的を果たす役に立つなら、この記事を書いた労力も報われます。