結論
先に書いておくと、まだ出来ない。
※判定方法が不明
ユーザごとの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
エンドポイントを使って
送信されたマルチキャストメッセージの数を取得出来るようになったらしい。
が、パラメータはdate
でyyyyMMdd
単位でしかわからないようなので、
1回/日しか配信しないとか、
日ごとに定期的に配信とかなら結果をDBに保存して差分とか見れば使えるのかも。
痒いところに手が届きませんな。
ということで、
配信結果がわかるプッシュメッセージをユーザ数分打つことにした。
POST https://api.line.me/v2/bot/message/push
ブロックの判定
配信するAPIも決まったのであとは
ブロック時にどんなレスポンスが返ってくるか
がわかれば問題は解決。
ということでLINE@アカウントをブロックして、
自分宛にPushメッセージを送信してみたところ、
200 OK
が返ってきた。
まぁ、リクエストは飛んだのだろう。
で、メッセージはというとこちら。
{}
配信成功もブロックも同じらしい。
記憶が正しければ、前は判定出来た(少なくともメッセージくらいは返ってきた)気がするが、
仕様が変わってしまったのだろうか。
教えて偉い人。
ユーザ管理して、
Unfollowイベント拾ってDBとかでブロックしてる人を管理しないと
ブロックの判定は無理なのだろうか。