皆さん、こんにちは。Discourse は初めてで、REST API を使用して、あらゆるレベルのユーザーが投稿に「いいね!」できるようにするオプションを見つけるために、すべてのサイト設定 (/admin/site_settings) セクションを確認しました。
現在、すべてのユーザーは(公開なしで)トピックを作成したり、返信を追加したりできます。しかし、通常のユーザー(tl0、tl1 など)は、API を介して投稿に「いいね!」することはできません(ただし、Web パネルを使用すると「いいね!」できます)。
以下は私のカテゴリ設定です。
API を介して「いいね!」を追加するために、次のコードを使用しています。
public async likeOrThrow(contentId: number, username: string) {
try {
this.overrideUsername(username);
const res = await this.client.post(`post_actions.json`, {
id: contentId,
post_action_type_id: 2,
flag_topic: false,
});
return res.data;
} catch (error) {
throw this.getException(error);
} finally {
this.resetUsername();
}
}
これは次のようにスローされます。
You are not permitted to view the requested resource.
しかし、ユーザーとして Discourse にログインすると、そのユーザーは「いいね!」を行うことができます。
これまでのところ、同じ API キー、同じカテゴリ、同じユーザー名で、トピック作成、投稿作成、ブックマーク API を統合しており、それらは権限の問題なく機能しています。
ここで何が間違っているのか教えていただけますか?追加情報が必要な場合はお知らせください。
ありがとうございます。
「いいね!」 1
Jagster
(Jakke Lehtonen)
3
わかりませんが、everyone のみを使用してカテゴリ設定を簡単にすることができます。
「いいね!」 2
こんにちは、@Bas コメントありがとうございます。
しかし、なぜ like だけなのでしょうか? 私はすでに Discourse API を使用して、グローバルキー(ユーザーレベル:全ユーザー、スコープ:グローバル)で投稿作成、返信作成、ブックマークの追加・削除を実装しました。
新しいグローバル API キーを試しましたが、やはり同じエラーが発生します 
API キーがグローバルスコープで全ユーザーに有効な場合、以下の API は機能するはずですよね?
RGJ
(Richard - Communiteq)
5
はい、このコードも問題ないように見えます。
contentId はどのように / 何に設定されていますか? 正しい Post.id ですか?
こんにちは @RGJ
contentId は投稿 ID で、正しい投稿 ID です。
以下のコードで、ログが出力されます。
this.client.interceptors.request.use((config) => {
Logger.log(`Request to ${config.url}`);
Logger.log(`Headers: ${JSON.stringify(config.headers, null, 2)}`);
Logger.log(`Body: ${JSON.stringify(config.data, null, 2)}`);
return config;
})
ログ:
[Nest] 97134 - 12/02/2024, 4:10:29 PM LOG Request to post_actions.json
[Nest] 97134 - 12/02/2024, 4:10:29 PM LOG Headers: {
"Accept": "application/json, text/plain, */*",
"Api-Username": "m...91",
"Api-Key": "66dc....18b56fbc17bcf"
}
[Nest] 97134 - 12/02/2024, 4:10:29 PM LOG Body: {
"id": 84,
"post_action_type_id": 2,
"flag_topic": false
}
おっと、問題を見つけたようです。
テスト中に、別のユーザーの投稿(テストしていたものと同じタイトル)を誤って選択したところ、成功しました。
しかし、自分のシステムを使用してテストしたところ、自分の投稿に「いいね!」を追加しようとしていました。
ご迷惑をおかけしました。自分の投稿に「いいね!」を付けられないことに気づきませんでした。
よろしくお願いいたします。
「いいね!」 3
system
(system)
クローズされました:
8
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.