一般ユーザーもAPIを利用できるようにする、管理者だけでなく

Reverse engineer the Discourse API には次のように書かれています。

サイト上でできることは何でも JSON API を使って行うことができます。

残念ながら、https://docs.discourse.org/ には

一部のエンドポイントは認証を必要としませんが、それ以外はほとんどすべて認証が必要です。認証するには、管理パネルから API キーを作成する必要があります。

これは残念です。なぜなら、管理者だけでなく、一般ユーザーでも API を利用できる正当な使い道がたくさんあるからです。

例えば、ユーザーが設定のダウンロード(https://meta.discourse.org/t/backup-export-import-preferences/254597)をクリックする代わりに、設定をダウンロードするための月次 cron ジョブを設定することができます。

ソースコードの変更が必要だと私は言っています。そうすれば、世界中のユーザーが利用しているローカル Discourse の API にアクセスして、個人データなどを取得できるようになるでしょう。

「いいね!」 3

(スコープに応じて認証されたリクエストを送信できます)


これらリソースを参照すると、非常に役立つかもしれません :slight_smile:

「いいね!」 6

Update openapi.yml by jidanni · Pull Request #72 · discourse/discourse_api_docs · GitHub には次のように書かれています。

しかし、管理者からのサポートと、ユーザーAPIキーサイト設定で承認されたエンドポイントなしでは、「一般ユーザー」は独自のAPIキーを生成することはできません。

その応答は正しくありません。ユーザーの信頼レベルでユーザーAPIキーの生成が有効になっている場合、どのユーザーでもユーザーAPIキーを生成できます。リクエストペイロードにリダイレクトを設定しない場合、キーが含まれるBase64エンコードされた応答がブラウザに表示されます。

その方法を示すスクリプトについては、こちらのトピックを参照してください。

「いいね!」 3

AさんのDiscourseがデフォルト設定でインストールされており、BさんがAさんのDiscourseの単なる一般ユーザーで、Aさんが管理者設定を変更していない場合、BさんはAPIで多くのことを行うことができますか?

ユーザーAPIキーの生成はデフォルトで全ユーザーに対して有効になっており、WebインターフェースからできることはすべてAPI経由でも実行できます。これは、WebインターフェースがAPIのフロントエンドにすぎないためです。

私は個人的に、例外はいくつかありますが、アカウントを持つすべてのインスタンスの未読通知の実行合計を保持するChrome拡張機能でそれを使用しています。

「いいね!」 2

既存のDiscourseインスタンスにアカウントを持つユーザーは、ブラウザからの同じCookie認証を、ブラウザ以外のAPIリクエストでも使用できるはずです。

「いいね!」 2