Private Message Send API

アーキタイプを設定していますか?今後、送信しているリクエストを含めていただければ、お手伝いしやすくなります。

以下の例は私の環境で動作します:

curl https://$DISCOURSE_HOSTNAME/posts \
  -H "api-key: $DISCOURSE_API_KEY" \
  --data 'title=Testing PM creation&archetype=private_message&target_recipients=user1,user2' \
  --data-urlencode 'raw=PM body, long enough to meet site rules & may be complex ♥'

:information_source: all_users API キーを使用している場合は、api-username も指定する必要があります。

「いいね!」 3

ありがとうございます、解決しました!いいえ、API ドキュメントに archetype が必須と記載されていなかった(target_usernames のような「プライベートメッセージの場合必須」という記載すらなく)、その目的についても何も書かれていなかったため、触っていませんでした。

とにかく、これで動作するようになりました。同じ問題に直面する方の参考になれば幸いです(特に POST を使用する場合)。私の正常に動作するリクエストに含まれる JSON エンコードされたボディ要素は以下の通りです:

key value
raw 生メッセージテキスト
title メッセージ/スレッドのタイトル
target_usernames カンマ区切りのユーザー名リスト
archetype 文字列 private_message

これは /posts.json への POST リクエストのボディとして送信され、以下のカスタムヘッダーフィールドを含みます:

key value
Content-Type application/json; charset=UTF-8
Api-Key キーデータ
Api-Username ユーザー名
「いいね!」 2