API 経由でトピックステータスを pinned-global に変更しても機能しません

Discourse API を使用して投稿のステータスを ‘pinned-globally’ に設定する Python スクリプトを作成しています。API ドキュメント に従っています。

‘pinned-globally’ を指定したリクエストは 400 エラーで失敗しますが、ステータスパラメータを ‘pinned’ に設定したリクエストは正常に動作します(つまり、投稿がローカルでピン留めされているのが確認できます)。

コードの抜粋は以下の通りです:

apiWebsite = '<my_website_URL>'
apiKey = '<secret>'
apiUsername = '<secret>'

headers = {
    'Api-Key': apiKey,
    'Api-Username': apiUsername
}


# このリクエストは正常に動作します
# 同じ投稿をローカルでピン留め
payload = {
    'status': 'pinned',
    'enabled': 'true',
    'until': '2019-11-25T08:00:00'
}
u = requests.put(apiWebsite + '/t/29082/status', headers=headers, data=payload)
print(u.status_code)

ピン留めステータスを false に戻した後、以下のようにグローバルにピン留めを試みます。

# このリクエストは動作しません
# 同じトピックをグローバルにピン留め
payload = {
    'status': 'pinned-globally',
    'enabled': 'true',
    'until': '2019-11-25T08:00:00'
}
u = requests.put(apiWebsite + '/t/29082/status', headers=headers, data=payload)
print(u.status_code)

明らかな見落としがあるのか、それとも本当のバグなのか、ご教示ください。

追記:ユーザーには十分な権限があります。

「いいね!」 2

同じトピックをグローバルとローカルの両方で同時にピン留めすることはできません。どちらか一方を選択してください。

「いいね!」 1

こんにちは、David さん。
もちろん、2 つのリクエストの違いを示すために、あえてコードをそのように記述しました。
最初の投稿をより明確にするために変更します。

「いいね!」 1

お疲れ様です :ok_hand:。コードを確認したところ、400 エラーの原因となる箇所が見つかりました。

pinned-globally の代わりに pinned_globally が必要ではないでしょうか。試して、動作するか確認してもらえますか?どうやら API ドキュメントにタイプミスがあったようです。修正します。

追記:修正済み Correct pinned_globally in topic status documentation · discourse/discourse_api_docs@fcf0d5f · GitHub

「いいね!」 5

確認済み! :slight_smile:
ありがとうございます! :clap:

「いいね!」 3