Discourse API を通じて Python 3.8 を使用し、以下のコードでトピックのタグを取得できました:
topic_url = forum_url + f'/t/{topic_id}.json'
topic_obj = requests.get(topic_url, headers=headers).json()
topic_tags = list(topic_obj.get('tags'))
使用したヘッダーは以下の通りです(API ユーザーには管理者権限があります):
headers = {
'Content-Type': 'application/json',
'Api-Key': api_key,
'Api-Username': api_username
}
しかし、同じヘッダーを使用してタグを更新しようとすると失敗します:
update_url = forum_url + f'/t/-/{topic_id}.json'
payload = {'tags':['bmw', 'nd', 'ak', 'ca']}
r = requests.put(
update_url,
params=payload,
headers=headers
)
レスポンス:
<Response [500]>
{'status': 500, 'error': 'Internal Server Error'}
トピックのタイトルを更新する際は、同じ requests メソッド、ヘッダー、API 資格情報、URL を使用して成功しました。なぜタグの更新時にアクセスが拒否されるのか見当が付きません。ヒントをいただけますと幸いです!ありがとうございます!