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」にします。

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をうまく連携する良いアイディアが今後生まれたら、また試してみたいと思います。