NFCタグとAzure Logic AppsでかんたんTweet

目次

はじめに

かなり無理矢理な設定ですが、書き換え可能なNFCタグ、皆さん持っていますよね?
今回はNFCタグにAzure Logic AppsのHTTPトリガーURLを書き込み、気軽にスマフォタッチでTwitterにメッセージを投稿するという、誰得?な記事です。

NFCタグの準備

amazonとかで「NTAG215」で検索すると、いろいろな形状のブランクカードが売っています。特におすすめは無いのですが、適当なものを買えばいいと思います。多少の不良品混入は想定して私は30枚入りのコインタイプを購入しました。

Amazonで[NTAG215」を検索

書き込みアプリの準備

iPhoneであれば、NFC Toolsが良いかなと。無料でも基本的な読み込み、書き込みが行えます。課金するとデータ管理が容易になったりするみたいです。

NFC Tools

Logic Appsの準備

Azureポータルから任意のリソースグループ内に、Logic Appsを作成します。

HTTPトリガー

トリガーとしてはHTTP要求の受信時(HTTPトリガー)を選択。Logic Appsの受け口のメソッドの指定を「GET」にします。

img

JSONの解析

HTTP GETのURLはLogic Appsの保存時に発行されますが、iPhoneからこのURLを叩く際にGETパラメータとして最後に「&message=<文字列>」を追加してTweetするメッセージを指定できるようにします。
実際にはNFCタグに書き込むURLには固定で指定することになります。

img

「コンテンツ」には前段のHTTPトリガーで渡されてきたクエリを指定。
スキーマとしては、下記例の様に入力することで、messageパラメータが扱えるようになります。

{     “properties”: {         “message”: {             “type”: “string”         }     },     “type”: “object” }

Tweetの投稿

先のJSONの解析結果から「message」をツイートの投稿の「ツイートテキスト」に指定します。事前にTwitterとアカウント連携を行って接続しておきます。

img

クライアント(iPhone)への応答メッセージ

要求を出したiPhone側のブラウザにも応答メッセージを返すことにします。

img

NFCタグの書き込み

iPhoneから「NFC Tools」を起動して、初期メニューから「書く」をタップします。

img

「レコードを追加」にて「URL/URI」を指定、URLにはLogic AppsのHTTP要求の受信時トリガーにて発行された「HTTP GETのURL」+「&message=<message>」を指定します。

https://」は自動でURLの先頭に付与されるみたいなので、実際に入力するところは先頭の「https://」は削って設定します。

また、<message>に日本語を入力する場合には、文字列をURLエンコードして設定します。

img

具体的には「ほげほげ」とTweetする場合にはURLの最後に「&message=%E3%81%BB%E3%81%92%E3%81%BB%E3%81%92」と追加します。

ネット上にかんたんにURLエンコード、デコードができるサイトがあるので、そちらを利用すれば良いと思います。

URLエンコード・デコード - 日本語URLを扱う場合にどうぞ

NFCタグを準備して、NFC Toolsの「書き込み」をタップします。「スキャンの準備ができました」と出たら、NFCタグをiPhoneの上部に近づけることで書き込みできます。

img

動作確認

NFC Toolsはもう使いませんのでアプリを終了します。

通常のiPhone待受状態で、NFCタグを近づけると通知バナーが表示されるので、それをタップすることでブラウザ経由で指定したURLにアクセスします。

img

ブラウザ(私の場合はChrome)が開き、Logic Appsで設定した応答メッセージが表示されましたね。

img

Logic Apps側の実行結果も全て正常です。

img

ちゃんとTweetもされているようです。

img

あとは、NFCタグをいつでも手元に置いておけば、気軽にTweetできますね!

img

今の気分ごとにメッセージ内容を変えて、複数のNFCタグを準備すると良いと思います!

おわりに

実際にLogic Appsでやっていることは大したことないのと、本当にこのソリューションが有益か?と聞かれると自分でも疑問です。

半分ネタ記事ですが、NFCタグとAzureをうまく連携する良いアイディアが今後生まれたら、また試してみたいと思います。