TECHNICAL BLOG

2017/11/21 # やってみた # BOT 2017/11 LINE Message API(ボット)で写真共有

基本

LINE Message APIとは、ユーザとサーバをテキストメッセージや写真でつなぐAPIです。

  • Message APIに登録すると一つのチャンネル(トーク)が割り当てられる。
  • ユーザはQRコード経由でトークに参加する。
  • このトーク内でユーザがメッセージを送信し、サーバが受け取る。
  • 逆にサーバがメッセージを送信し、ユーザが受け取る。

このトークには複数人参加できますが、参加したユーザは直接別ユーザのアカウント情報やメッセージが見えることはありません。
間接的にサーバを介して全員に送信するプログラムを組めばメッセージのやりとりはできます。
しかし、それでも別ユーザのアカウント情報は見えません。
そのため、LINE交換まではしたくない人と薄くつながるためのツールとしてLINE Message APIは役に立ちます。

プラン

LINE Message APIはプランによって制限があります。

  • Developer 0円(50人まで)
  • フリー 0円(プッシュ通知不可)
  • ベーシック 月額5400円(プッシュ通知不可)
  • プロ 月額21600円

今回はDeveloperを利用しました。

つくってみた

ユーザが写真を送ると他のユーザに写真が届くものを作ってみました。
(会社の宴会やイベントごとで写真を共有するのにいいんじゃないかと)

アーキテクチャ

  • 使ったサーバはGAE/go。無料でクレジットカード登録も不要。
  • LINE SDKはgo用のものもあります。
  • DBはGoogle Cloud Datastore。NoSQLでクセがありますが無料で使える。
  • 写真置き場はGoogle Cloud Storage。5GBまで無料。使用感はS3とほぼ同じでした。
  • LINEからのサーバへのイベントは全てPOSTでやり取りします。

フロー

  • QRコードからトーク参加すると、フォローイベントを受信したサーバでアノニマイズされたユーザIDをDatastoreに保存しておく
  • 写真を受け取ったらCloudStorageに保存
  • 保存してあった他ユーザIDに対してCloudStorageの写真URLを添えてLINEにPOST
  • LINEが他ユーザに写真メッセージを送って、ユーザはトーク上でCloudStorageの写真を見る

所感

今やLINEは老若男みんながインストールしていて、特にITが苦手な人には導入の入り口が低い強力なツールと言えます。
今回の紹介は写真共有でしたが、保存した写真からランダムに1枚抽選して発表するということもできます。
ボットは一時期流行りましたが、LINE Message APIはアイデア次第でもっと便利になる可能性を秘めていると実感しました。