アラートに華を(2)
(1)の記事はこちら
やあ、安竹です。
2月、うっかり節分を忘れていた。ここ数年、豆や鬼より「恵方」のほうをよく聞く。恵方巻き、恵方呑み、恵方サブとは!正直、最後のやつは全く違う連想をした。

(鬼を検索しようとして、カニを検索していた....写真は記事とは無関係です。)
アラートの雨
今回は、アラートメール(通常の顧客に配信するメールも同じ)に外部サービスから取得した情報を追加してみる。情報の種類は様々だが、前回おもわず「天気」と書いてしまったので仕方ない、天気だ。正直いえば天気なんて余裕で取得できるはずと思っていたのだ。これが東京五輪開催費のごとくアマイ見積もりだった。
情報はタダではない
ドライな天候が今後も続くのか?うちの盆栽は大丈夫か?天候はあらゆる人間活動に影響を与える。そしてそれゆえ需要が高い。
次のようなサービスがある。

http://weather.livedoor.com/weather_hacks/webservice
全国の天気予報を教えてくれるサービスだ。もちろん、天気の情報はいろんなサイトで提供されている。気象庁、Yahoo、ウェザーニュース、各種お天気Bot。今回、このブログで厳選したのは Livedoor だ。失礼を承知で書けば、ここしか完全無料の API が見つからなかった。無料サービスを見つけるのにこんなに工数がかかるとは、石原さんも思いもよらなかっただろう。
JSON は厚くない
はたして、このサービスからは以下のような情報を取得できる。たとえば、東京のお天気情報は、以下のURLをブラウザに指定することで表示される。(city=130010 のコードが東京。コード表はこちら)
http://weather.livedoor.com/forecast/webservice/json/v1?city=130010
わけのわからないテキストが表示されていると思う。英数字以外はコード化されているため読むことはできないだろう(実際は「晴れ」などの漢字がコード化されている)。
だが、
"temperature":{"min":{"celsius":"2","fahrenheit":"35.6"},"max":{"celsius":"5","fahrenheit":"41.0"}}
のようなテキストも見てとれる。temperature(気温)、celsius(摂氏)、fahrenheit(華氏)だ。なんとなく、情報のまとまりとして temperature->min->celsius=2 という構造が浮かぶだろうか?最低気温2度。浮かばなければ、細かいことは気にせず、厚切りジェーソンのコントでも見て気を落ち着けよう。Why JSON!
ウェブフックの常習性
マルケトでは、ウェブフック(Webhook)という機能を利用することで、顧客単位(リード単位)で外部サービスを呼び出すことができる。外部サービスから戻ってくる上のような情報を、その顧客のカスタムフィールドに取り込むことができる。取り込める情報のフォーマットは、JSONとXMLだ。それ以外のデータフォーマットの場合はマルケトで直接受け取れない。間に何か別のサービスを挟む必要がある。
管理>ウェブフック メニューから新規ウェブフックを作成しよう。呼び出し先の設定と、戻ってきた情報をどのカスタムフィールドに入れるかを設定する。今回はアラートメールで社内向けに利用するため、東京(東京オフィスという前提で、130010)固定とした。もちろん、顧客の情報(トークンを使う)を使うこともできる。

- URL: http://weather.livedoor.com/forecast/webservice/json/v1?city=130010
- ペイロードテンプレート:なし(フォームデータ的にPOSTするならこちらに相手のサービスがサポートするフォーマットで指定 例:{"age":"17"} 的な)
- リクエストトークンのエンコード:フォーム/URL
- リクエストタイプ:GET
- 応答フォーマット:JSON
- 応答属性 (JSONのデータの場所:カスタムフィールド名)
- forecasts[0].telop :tokyoWeather
- forecasts[0].temperature.max.celsius :tokyoTempC
この例では、天気の状況(晴れ、曇りなど)を tokyoWeather に、最高気温を tokyoTempC に入れている。カスタムフィールドのタイプはそれぞれ文字列と整数だ。整数にしておけば、10度以下だった場合に「寒いねー、でもこのリードは暑いぜ!」と、ちょっとプライベートでは付き合いたくないなという雰囲気を醸し出すアラートメールが作成できるだろう。
厚切りを召喚
前回作成した、味気ないメールを再度複製して新しいアラートメールを作成しよう。内容に天気情報を活かしたい。カスタムフィールド(weatherComment:文字列)をさらに一つ追加作成して、トークンとして入れた。

あとは、天気サービスを呼び出して送信だ。スマートリストは前回のままでいい(注:ウェブフックはトリガーキャンペーンでしか呼べないことに注意。)


9%のアラートメールにブツが差し込まれる。
今回はすこし大人な内容になったかもしれない。アラートマニアの道はまだまだ険しい。次回は、ダイナミックコンテンツあたりを使ってさらに自暴自棄に盛り上がったアラートメールを作成したいと思う。
宿題
サービスはまだまだいろいろある!(実験してないから、できるかわからんけど)是非試してほしい!
- WikiPedia (お客さんの会社情報を差し込んではどうだろう?):ユーザーローカルWikipedia API - ウィキペディア情報をサイトで利用できるAPI
- 経路情報(お客さんの会社へGO!):0円から駅すぱあとの経路検索や路線情報を追加できるWebAPI「駅すぱあとWebサービス」