FacebookとMLの連携が意外と難しくてですね。
みなさん、こんにちは。IT DART代表理事の宮川です。好きな言語はPrologとLISPです。このあいだ、GitHubでどんな言語が使われているかというグラフを見かけたんですが、PrologもLISPもありませんでした。悲しいです。
IT DART Advent Calendarもいよいよ終盤に近づいてきました。25日にはサンタさんからプレゼントをもらえるのでしょうか。
今日は、去年の広島土砂災害の時に行ったIT支援が、いまいちうまくできなかったことを思い出したので、みなさんだったらどうするかなーと思いながら書いてみます。良いアイデアがあればぜひ情報共有をお願いします。
支援団体のMLとfacebookを連携させたい
2014年8月20日に、広島市で大規模な土砂災害が発生しました。この土砂災害は、局地的な大雨によるもので、広島市の安佐北区・安佐南区で同時多発的な土砂崩れが発生したことによるものです。死者74名、重軽傷者44名という、土砂災害としては過去30年で最大規模の被害となりました。
私は、この災害の対応に当たった団体で後方支援活動をしていました。現地で活動をするメンバーの情報環境を整備したり、情報共有の支援を行ったりしていました。その中でリクエストがあったのもののひとつが、「普段の情報共有はメーリングリストで行っているが、facebookに投稿したものもメーリングリストで共有できないか」というものでした。
この団体のメンバーは、普段はメーリングリストでコミュニケーションをしています。広島の被災状況を広く知ってもらうためにfacebookも活用していますが、メーリングリストに流す情報とfacebookに流す情報が重複していたりしていなかったりで、情報共有が難しくなっていました。そこで、これをなんとかすっきり整理できないだろうか、というリクエストが団体の代表から舞い込んできたのです。
qiitaのAdvent Calendarを読んでいる皆さんなら「そんなん、facebookに一本化すれば良いじゃん」と思われる方も多いかと思いますが、団体メンバーのうちfacebookにアカウントを持っているのは8割くらい、常時facebookを見ているメンバーは恐らく6割台という印象です。ガラケーでメールを読んでいるメンバーも多いようでした。さすがに3割以上のメンバーを無視するわけにはいきません。抜本的にコミュニケーションをどうするのよ、という問題はさておき、広島の状況を共有するために何とかクイックに対応する必要がありました。
IT x 災害コミュニティで相談をしてみたところ、IFTTTというサービスを教えていただきました。IFTTTは、facebook, twitter, evernote, dropboxなどの複数のWebサービスを、自分で定義したトリガーを使って連結させるためのサービスです。たとえば、facebookに自分がタグ付けされた写真が投稿されたら、その写真を自動的にdropboxに保存する、といったことができるようになります。こういったさまざまなサービスの組み合わせは「レシピ」としてIFTTTに投稿されているので、そのなかから自分のニーズに合うモノを使うこともできますし、なければ作ることもできます(IFTTT って何の略かと思ったら IF This Then Thatだったんですね)。
このレシピの中に、FacebookとGmailを連結させるレシピがありました(現在は、Facebookの仕様変更でできなくなってしまったようです)。これを使っても良かったのですが、当時は初心だったので(笑)IFTTTになじめず、この方法は使いませんでした。
その代わりに使ったのが、facebookの機能を使って、グループへの投稿がメールに配信されるようにして、それをMLで共有するという方法です。
どんなことをやったのか
Facebookグループには、グループのメールアドレスを設定する機能があります。その機能を使ってfacebookの投稿をメールで受け取れるようにしておいて、そのメールをMLに転送することで、facebookを使っていないメンバーにも内容が共有できるようになります。
- グループページ右上の「・・・」メニューから「グループの設定と編集」を選びます。
- 「ウェブアドレスとメールアドレス」にある「カスタマイズ」を選びます。
- ウェブページとメールに使う名前を入力します。たとえば hoge という名前を設定すると、グループのウェブアドレスはfacebook.com/groups/hoge となり、メールアドレスは hoge@groups.facebook.com になります。この設定をすることで、グループに投稿があるとその内容が hoge@groups.facebook.comに送信され、さらにそのメールはグループの管理者の登録メールアドレスへ転送されます。
- グループ管理者は、facebookから送られてきたメールを、団体で使っているMLに転送します。gmailの場合は、転送設定の際に、転送先のメールアドレスの承認が必要となるので、ML管理者と連携して設定する必要があります。
負け感たっぷり
ところが、この方法では、4の団体MLへの転送がうまくいかないことがわかりました。団体のMLは、SPAMを避けるために、登録したアドレスからのみの投稿に限定しています。4でそのまま転送してしまうと、差出人アドレスであるxxxxxx@facebookmail.comのアドレスが団体MLに登録されていないのではじかれてしまいます。
じゃあ、そのfromメールアドレスを団体MLに登録すれば解決、と思ったのですが、どうも、xxxxxの部分は投稿者IDから作られているらしく、つまり、投稿者ごとにfromメールアドレスが違うわけです。きー!!
結局、団体MLの設定を、登録されていないメールからでも投稿可能にする、という設定に変更してしまいました。負け感たっぷりです。悲しい。
加えて、土砂災害支援に関する投稿以外の、facebookからの各種お知らせがMLに転送されてしまわないよう、転送フィルタをかなり注意深く書く必要がありました。
さらに、この方法でうまくいくのは、facebook -> MLだけで、ML -> facebookはできません。それだけでなく、MLに流れたfacebookの投稿は、文字だけなら読めるのですがリンクをクリックするとfacebookログインを求められてしまいます。Facebookアカウントを持っていない人でも情報共有できるように、という目的だったのですが、本末転倒です。
結局この方法は多くの団体メンバーさんに「???」の嵐をまき散らしてしまいました。幸か不幸か、みなさんお忙しい方なので、わからないことはスルーしてくださる方が多く、パニックにはなりませんでしたが、ほんと、失敗だったなあと思います。
本当なら、この失敗から学んで、ちゃんとできる方法を確立しておかないといけないのですが、ついついやりっぱなしでそのまま時間が過ぎてしまいました。せっかくの機会なので、ここに晒して、皆さんからのお知恵を拝借したいと思います。良いやり方があるよ、という方は、twitterアカウント@it_dartにメンション飛ばしてください。そして、そういう知恵ならいつでも貸すぜ、という方は是非隊員として登録を!