iPhoneからSlackに簡単にメッセージを飛ばせるようにしました。デスクトップのショートカットから定型文を投稿して、付近の天気図をもらっています。書くまでの経緯Slack便利ですね。さんに「ヘッドレスブラウザーで特定のURLを切り取ってSlackに画像を投稿する」ですとか、「Googleの画像検索結果を画像として投稿する」というモジュールを作ってもらいました。くんには「サーバを監視して落ちていたら通知する」モジュールを作ってもらいました。すべてhubotです。会津天気」みたいな発言をすると天気図を見ることができます。アプリを使っても良いんですけれど、Slackに投げることで「あ、近くで大雨だね」とかそういう認識ができるんですね。ちなみに住んでいる地域が内陸部のためか天気予報が当たりにくいんですね。「現在の降水確率が100%」なんてこともあります。いうときはつい「ちゃんと当ててくれよー」って思っちゃうんですが、天気図を見れば自分で雨雲の動きを判断できるので納得できますよね。この「画像をbotに投稿させる」というトリガについては、「特定のチャンネルで定型文を発言する」ということが必要です。iPhoneからだと日本語入力の履歴から行えばある程度は楽だったんですが、やっぱりちょっと大変で、IFTTTを使ってボタン化していました。こんな感じで動きます。BUTTON」という名前だったかと思いますが、今は「Widget」という名前になっています。これはこれで便利なのですが、アプリを開いて送信を完了させるという2ステップになっていたんですね。IFTTTを使っているとインテグレーションを一つ使うで、フリープランの制限を圧迫していました。Appも使ってると上限に達しちゃうんですよね。IFTTTに限らず「他のユーザーも使いたい」となった場合、1ユーザー1インテグレーションとなってしまうので、やはりすぐに上限に達してしまいます。Webhook」を使って一元化できないかな、ということでまとめてみました。アプリケーションではアクセストークンを生成してアプリケーションに割り当て、それぞれのアプリケーションで読み書きをさせることができます。Hubotのようにメッセージを読み取って応答することもできます。Webhook」はアプリケーションと違い、簡単なメッセージング機能しかありません。基本的な使い方はこんな感じです。https://hooks.slack.com/services/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リクエストはPOSTにして、bodyにJSONなpayloadという文字列を作って投げます。するとチャンネルにメッセージが飛びます。ウェブフックを作成する時にチャンネルやアイコンを指定しますが、payloadを見ると分かるようにリクエスト時に変更することが可能です。そのため一つのウェブフックで名前やアイコンを変えたbot(っぽいメッセージング)が作れます。これをつかってiPhoneで投稿させるようにします。Webhookは次のURLから取得できます。取得方法のページも色々とありますね。「デスクトップに追加」iPhoneではSafariで開いたURLを「デスクトップに追加」させることができます。「ブックマークを開くショートカット」なんですが、アプリのような感じで振る舞うので便利です。これを使ってメッセージの投稿を簡単に行わせます。WebhookはPOSTしか受け付けません。デスクトップに追加と組み合わせてSafariなどのブラウザで開く場合にはGETしか送ることができません。PHPを使って適当なサーバにコード置いて、GETからPOSTにメッセージを変えてやります。コードはこんな感じです。'hoge';このコードをどこかの公開しているサーバに置いてブラウザでアクセスします。アクセスするときにはGETのクエリストリングを与えてやります。クエリストリングは下記のものが参照されます。