phallguy
(Paul Alexander)
1
ウェブフックが通知をサポートするようになったのを知り、素晴らしいと思います。本当に必要な機能です。ただし、ペイロードに重要な情報が1つ欠けています。それは、通知の対象となるユーザーです。この例のペイロードでは、通知をトリガーした投稿の著者は確認できますが、通知を受け取るべきユーザーは確認できません。
{
"notification": {
"id": 119,
"notification_type": 9,
"read": false,
"created_at": "2019-09-18T13:42:21.248Z",
"post_number": 1,
"topic_id": 75,
"fancy_title": "Phallguy should get a notice about this",
"slug": "phallguy-should-get-a-notice-about-this",
"data": {
"topic_title": "Phallguy should get a notice about this",
"original_post_id": 111,
"original_post_type": 1,
"original_username": "Paul_Alexander",
"revision_number": null,
"display_username": "Paul_Alexander"
}
}
}
通知IDから対象ユーザーを取得するためのAPIがないか探しましたが、ドキュメント化されたものは見つかりませんでした。通知ペイロードに対象ユーザー名またはIDを取得する方法はありますか?
参考までに、私たちは複数のシステムからの通知を統合し、ユーザーにとって単一の体験にまとめようとしています。
phallguy
(Paul Alexander)
2
@Falco または @blake さん、新しい通知の Webhook で受信した際に、その通知がどのユーザー向けなのかを特定する方法について、ご意見はありますか?
blake
(Blake Erickson)
3
少しだけ確認しましたが、すぐに答えがあるかどうか見てみました。その通りですね、個別の通知を ID で取得するための get API エンドポイントは存在しないようです。ただ、毎回それを呼び出すのは効率的ではありません。
おそらく、通知ペイロード内に user_id や username を含めるように通知シリアライザーのコードを変更する必要があるでしょう。そうすれば、追加の API リクエストが不要になります。
phallguy
(Paul Alexander)
4
現在はホスト型サービスを利用していますが、そうでなければ自分でプラグインを作成するところでした。Webhook の通知ペイロードにユーザー ID/ユーザー名を追加することを検討していただけませんか?
phallguy
(Paul Alexander)
6
試してみました。そこに追加のメタデータがあるか期待していましたが、ユーザー固有のものは見つかりませんでした。
Request URL: https://XXX
Request method: POST
Accept: */*
Connection: close
Content-Length: 420
Content-Type: application/json
Host: XXX
User-Agent: Discourse/2.4.0.beta4
X-Discourse-Instance: https://XXX
X-Discourse-Event-Id: 11
X-Discourse-Event-Type: notification
X-Discourse-Event: notification_created
X-Discourse-Event-Signature: sha256=XXX
phallguy
(Paul Alexander)
7
皆様のご意見や最新情報をお聞かせいただけますでしょうか。ターゲットユーザーを指定しない通知ウェブバックは、実用性があまりありません。
phallguy
(Paul Alexander)
8
みなさん、issue の確認はできましたか?通知イベントでターゲットユーザー ID を取得できる見込みはありますか?
blake
(Blake Erickson)
9
通知の webhook JSON ペイロードに user_id を追加する PR を作成しました:
こんにちは、@blake さん。external_id も追加することは可能でしょうか?Discourse の SSO を利用しており、当社のシステムには Discourse のユーザー ID が存在しないためです。
blake
(Blake Erickson)
11
こんにちは、Albert さん!
それは良いアイデアだと思います。SSO が有効になっている場合にユーザーの external_id を追加するコミットを作成しました。
これが役立つことを願っています!次回デプロイ時にあなたのサイトに追加されます。デプロイは今週中に行われる予定です。
すごい、早いですね!本当にありがとうございます、とても助かりました
変更がホストされている Discourse サーバーに反映されるまでの概算時間はご存知ですか?
あ、気にしないでください。最後の文を読みませんでした
。ありがとうございます!!