NFCタグとAzure Logic AppsでかんたんTweet
はじめに
かなり無理矢理な設定ですが、書き換え可能なNFCタグ、皆さん持っていますよね?
今回はNFCタグにAzure Logic AppsのHTTPトリガーURLを書き込み、気軽にスマフォタッチでTwitterにメッセージを投稿するという、誰得?な記事です。
NFCタグの準備
amazonとかで「NTAG215」で検索すると、いろいろな形状のブランクカードが売っています。特におすすめは無いのですが、適当なものを買えばいいと思います。多少の不良品混入は想定して私は30枚入りのコインタイプを購入しました。
書き込みアプリの準備
iPhoneであれば、NFC Toolsが良いかなと。無料でも基本的な読み込み、書き込みが行えます。課金するとデータ管理が容易になったりするみたいです。
Logic Appsの準備
Azureポータルから任意のリソースグループ内に、Logic Appsを作成します。
HTTPトリガー
トリガーとしてはHTTP要求の受信時(HTTPトリガー)を選択。Logic Appsの受け口のメソッドの指定を「GET」にします。
JSONの解析
HTTP GETのURLはLogic Appsの保存時に発行されますが、iPhoneからこのURLを叩く際にGETパラメータとして最後に「&message=<文字列>」を追加してTweetするメッセージを指定できるようにします。
実際にはNFCタグに書き込むURLには固定で指定することになります。
「コンテンツ」には前段のHTTPトリガーで渡されてきたクエリを指定。
スキーマとしては、下記例の様に入力することで、messageパラメータが扱えるようになります。
{ “properties”: { “message”: { “type”: “string” } }, “type”: “object” }
Tweetの投稿
先のJSONの解析結果から「message」をツイートの投稿の「ツイートテキスト」に指定します。事前にTwitterとアカウント連携を行って接続しておきます。
クライアント(iPhone)への応答メッセージ
要求を出したiPhone側のブラウザにも応答メッセージを返すことにします。
NFCタグの書き込み
iPhoneから「NFC Tools」を起動して、初期メニューから「書く」をタップします。
「レコードを追加」にて「URL/URI」を指定、URLにはLogic AppsのHTTP要求の受信時トリガーにて発行された「HTTP GETのURL」+「&message=<message>」を指定します。
「https://
」は自動でURLの先頭に付与されるみたいなので、実際に入力するところは先頭の「https://
」は削って設定します。
また、<message>に日本語を入力する場合には、文字列をURLエンコードして設定します。
具体的には「ほげほげ」とTweetする場合にはURLの最後に「&message=%E3%81%BB%E3%81%92%E3%81%BB%E3%81%92」と追加します。
ネット上にかんたんにURLエンコード、デコードができるサイトがあるので、そちらを利用すれば良いと思います。
URLエンコード・デコード - 日本語URLを扱う場合にどうぞ
NFCタグを準備して、NFC Toolsの「書き込み」をタップします。「スキャンの準備ができました」と出たら、NFCタグをiPhoneの上部に近づけることで書き込みできます。
動作確認
NFC Toolsはもう使いませんのでアプリを終了します。
通常のiPhone待受状態で、NFCタグを近づけると通知バナーが表示されるので、それをタップすることでブラウザ経由で指定したURLにアクセスします。
ブラウザ(私の場合はChrome)が開き、Logic Appsで設定した応答メッセージが表示されましたね。
Logic Apps側の実行結果も全て正常です。
ちゃんとTweetもされているようです。
あとは、NFCタグをいつでも手元に置いておけば、気軽にTweetできますね!
今の気分ごとにメッセージ内容を変えて、複数のNFCタグを準備すると良いと思います!
おわりに
実際にLogic Appsでやっていることは大したことないのと、本当にこのソリューションが有益か?と聞かれると自分でも疑問です。
半分ネタ記事ですが、NFCタグとAzureをうまく連携する良いアイディアが今後生まれたら、また試してみたいと思います。