こんにちは、pydiscourse クライアントを拡張してプライベートメッセージを送信する Python ユーティリティを作成しました。
def send_private_message(self, content_html, title, target_usernames):
""" このインスタンスが作成された API ユーザーとしてプライベートメッセージを送信します """
if type(target_usernames) is list:
target_usernames = ",".join(target_usernames)
return self.create_post(content_html, title=title, target_usernames=target_usernames,
archetype="private_message")
このユーティリティを、外部の受信者リストを使ってグループメッセージを送信するスクリプトで使用しています。ただし、受信者リストが常に最新に保たれているとは限らず、一部のユーザーが欠落している可能性があります。
そのため、約 100 人のユーザーにメッセージを送信しようとしたところ、422 エラーが発生し、以下のメッセージが表示されました。
One of the users you are sending this message to could not be found discourse
このエラーメッセージでは、どのユーザー名が「問題」なのかを特定するのが困難です。より詳細なエラー情報を取得する方法、またはこの呼び出しを行う前に該当するユーザーを特定する方法はありますか?もちろん、送信前にユーザーを 1 人ずつ照会することも可能ですが、リストが長い場合、パフォーマンスへの影響が甚大です。
よろしくお願いいたします。