I don’t think they can. They would have to register and update their preferences on that topic or their overall notification preferences.
Are there some docs about this endpoint? I have searched API docs but it is not there.
I am looking for a way how to create topic and assign it to a specific user (by discourse-assign plugin).
And also thinking if API key have to by for user system or I can use some other user with minimal permissions (what are that minimal required?).
Just this post: Creating a staged user with an API call - #8 by blake
This is totally doable. Have a look at Reverse engineer the Discourse API and you will see which endpoint the discourse-assign plugin calls.
Nope does not need to be with the system user. You just need a user with enough trust level to create and assign topics.
Thank you for reply. I understand how to assign specific post, but how to reliably find post just created by the /admin/email/handle_mail endpoint? It also seems to queue received calls, so I will not always find it immediately after the first call.
Correct, that endpoint does not return a topic_id.
Do they HAVE to be staged users? Couldn’t you just create the user via the api and then create a topic? Or are people that don’t have accounts yet going to be emailing that endpoint?
It is for public contact form on different products where each have different merchant. I want to assign topic to the specific merchant and also deny access to topics what does not belong to that merchant.
開発者ではない視点から質問があります。
当社のチケットシステムとしてDiscourseを使用しており、登録されていないユーザーがサポートフォーラムで新しいトピックを作成できるように設定しました。
時々、顧客が直接作成するのではなく、代わりに私が顧客のためにチケットを作成する必要が生じます。
フォーラムにアカウントを持っていない人の代わりにトピックを作成する簡単なステップバイステップの方法はありますか?彼らが自分でサインアップしない限り、完全なアカウントを持たせたくありません。
受信メールでトピックを作成してみてください。
これにより、トピック作成時にステージングされたユーザーが作成されます。
API経由でステージングされたユーザーを作成できます。
curl -i -sS -X POST "http://localhost:4200/users" \
-H "Content-Type: multipart/form-data" \
-H "Api-Key: 3e8aa0b7970cf010da24d06215fdc7b3951352c61a59ada70f5f36b4ce890bb2" \
-H "Api-Username: system" \
-F "name=2e6ac3603" \
-F "active=false" \
-F "staged=true" \
-F "username=2e6ac3603" \
-F "email=2e6ac3603@example.com" \
-F "password=f9b4c3c7ebd1c2877a0ad659be6ca83e"
その後、ユーザーのトピックを作成しますが、ユーザー作成時にDiscourseはアクティベーションメールを送信します。
{“success”: true,“active”: false,“message”: “ほぼ完了です!2e6ac3603@example.comにアクティベーションメールを送信しました。メールの指示に従ってアカウントをアクティベートしてください。届かない場合は、迷惑メールフォルダを確認してください。”}
したがって、これらの各行は末尾でCRによって区切られますか?そして、バックスラッシュの前にダブルスペースまたはタブがありますか?
すみません、前述のとおり、私は開発者ではないので、このコードを表示するだけでは、もう少し情報がないと完了できません。
では、この方法を使用するとユーザーが作成されるだけで、staged=trueであっても招待メールが送信されるのですか?
最も簡単な答えが常に最善です。
そのため、時折必要に応じてそれを使用します。
ご協力ありがとうございました。