LoginSignup
3
1

More than 5 years have passed since last update.

LINE Messaging APIのブロックの判定

Last updated at Posted at 2019-01-24

結論

先に書いておくと、まだ出来ない。
※判定方法が不明

ユーザごとのLINEの配信結果を知りたい

LINEのMessaging APIを使って
LINE@アカウントから複数のユーザに対して配信を行い、
下記の結果を知りたい。
ユーザごとの配信成功/失敗、ブロックしていて配信出来ない

複数のユーザに対する配信はどのAPIを使う?

最大ユーザーID数が1度に150人の
下記のマルチキャストAPIのエンドポイントが公開されている。
POST https://api.line.me/v2/bot/message/multicast

これ一択だと一瞬思うが、
レスポンスを確認しても1人1人の成功/失敗がわからないようだ。

ちなみに、2019年1月17日に、
/bot/message/multicastエンドポイントを使って
送信されたマルチキャストメッセージの数を取得出来るようになったらしい。

が、パラメータはdateyyyyMMdd単位でしかわからないようなので、
1回/日しか配信しないとか、
日ごとに定期的に配信とかなら結果をDBに保存して差分とか見れば使えるのかも。
痒いところに手が届きませんな。

ということで、
配信結果がわかるプッシュメッセージをユーザ数分打つことにした。
POST https://api.line.me/v2/bot/message/push

ブロックの判定

配信するAPIも決まったのであとは
ブロック時にどんなレスポンスが返ってくるか
がわかれば問題は解決。

ということでLINE@アカウントをブロックして、
自分宛にPushメッセージを送信してみたところ、
200 OKが返ってきた。

まぁ、リクエストは飛んだのだろう。
で、メッセージはというとこちら。
{}

スクリーンショット 2019-01-24 13.00.19.png

配信成功もブロックも同じらしい。
記憶が正しければ、前は判定出来た(少なくともメッセージくらいは返ってきた)気がするが、
仕様が変わってしまったのだろうか。

教えて偉い人。
ユーザ管理して、
Unfollowイベント拾ってDBとかでブロックしてる人を管理しないと
ブロックの判定は無理なのだろうか。

3
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1