全くの初心者です。API経由でDiscourseへのアクセス権を付与するにはどうすればよいですか?
まず、管理 > 詳細設定 > APIキーに移動し、新しいAPIキーをクリックして詳細を設定することで、APIキーを作成します。次に、生成されたAPIキーと、それが作成されたユーザーのユーザー名を、APIリクエストの Api-Key および Api-Username ヘッダーで使用します。@Enit
@Enit こんにちは。これについてもう少し詳しく説明していただけますか?API経由でプライベートフォーラムへのアクセスを許可することについてですか、それとも何か別のことですか?
ありがとうございます!
私たちは、複数のAIエージェント(DeepSeek、Claude、ChatGPTなど)がDiscourseフォーラムを共有ナレッジベースとして利用するAI搭載メモリシステムを構築しています。
現在のセットアップ:
- セルフホスト型Discourse(最新安定版)
- VPS: Ubuntu 22.04、Dockerベースのインストール
- 管理者ユーザー:
adminjozsi - AIエージェントユーザー:
grokenit(メール招待経由で作成)
問題点
APIキーの無効化が頻繁に発生する問題に直面しています。
- APIキーが予期せず期限切れになる(「1年」に設定しても)
- ランダムに**「無効なAPI」エラー**が表示され、新しいキーの生成が必要になる
- 昨日まで機能していたキーが、設定変更なしに今日突然失敗する
- POSTリクエスト(
/posts.json)でエラー:{"errors":["Invalid API key"]}
試したこと
ユーザーレベルのAPIキー(グローバルではなく)
- 説明:「Grok - User API Key - adminjozsi」
- ユーザーレベル:「単一ユーザー」→
adminjozsi - スコープ:グローバル
レート制限の調整:
- 「Rate limit new user create post」を
0に設定 - 新規ユーザーのすべてのレート制限を増加
複数回の再生成:
- 過去1週間で5つ以上のAPIキーを生成
- 各キーは最初に機能するが、24〜48時間以内に失敗する
質問
1. 1年設定にもかかわらず、APIキーが期限切れになるのはなぜですか?
見落としている隠れた有効期限のメカニズムはありますか?サーバーログには失効イベントは表示されません。
2. 2つの異なるAPIキーが同じApi-Usernameヘッダーを共有できますか?
私たちのアーキテクチャのアイデア:
- APIキー#1 → 人間の管理者(私)が手動操作に使用
- APIキー#2 → AIエージェント(DeepSeek)が自動投稿に使用
- 両方のキー → 同じ
Api-Username: adminjozsiヘッダー
質問: Discourseはこれを正しく処理しますか、それとも1キー=1ユーザーを期待しますか?
3. AIエージェントごとに別々のユーザーを作成すべきですか?
代替アプローチ:
- ユーザー
adminjozsi→ 人間の管理者(私) - ユーザー
grokenit→ AIエージェント#1(DeepSeek) - ユーザー
claude-ai→ AIエージェント#2(Claude) - それぞれが独自のAPIキーを持つ
懸念事項:
- AIエージェントアカウントに信頼レベルの調整が必要ですか?
- これによりレート制限の問題が発生しますか?
- ボット/エージェント統合の推奨パターンはこれですか?
4. ヘッドレス/自動化された使用のためのAPI安定性のベストプラクティスはありますか?
堅牢なAPI認証が必要です。なぜなら:
- AIエージェントは人間の監視なしに24時間年中無休で実行される
- 投稿の失敗 = メモリシステムでのデータ損失
- キーの再生成には手動介入が必要
技術詳細
APIリクエスト形式:
curl -X POST "https://www.enit.hu/posts.json" \
-H "Api-Key: [KEY]" \
-H "Api-Username: adminjozsi" \
-H "Content-Type: application/json" \
-d '{"title":"Test","raw":"Content","category":6}'
最初に機能:
{"id":123,"topic_id":45,...} を返します。
24〜48時間後:
{"errors":["Invalid API key"]} を返します。
サーバー環境:
- Discourseバージョン:3.6.0.beta2-latest (f26f894bfc)
- Dockerベースのインストール
- リバースプロキシなし(Let’s Encryptによる直接HTTPS)
- CDNまたはキャッシュレイヤーなし
必要なもの
理想的な解決策:
- 予期せず期限切れにならない安定したAPIキー
- マルチエージェントアーキテクチャ(キー1つ vs 複数キー)に関する明確なガイダンス
- キーが有効であるはずなのに「無効なAPI」エラーが発生する場合のデバッグのヒント
どのような洞察でも大歓迎です!これはAI統合プロジェクトの重要なブロッカーです。
フォーラムURL: https://www.enit.hu
必要であれば、さらに多くのログ/詳細を提供できます!
これを実行しました。APIは数時間動作しますが、その後動作しなくなります。
私の名前はヨージェフ、ハンガリー出身で、工場で夜勤をしています。
私は開発者でもIT担当者でもなく、自分自身のために役立つもの、つまり仕事とプライベートのメモを整理するための小さなシステムを構築しようとしているだけです。
Discourseをプライベートな日記や記憶ツールとして使いたかったので、独自のVPSにインストールしました。
公開されておらず、他に誰も使っておらず、私だけのものです。
ChatGPTやClaudeのようなAIアシスタントと組み合わせて、日々の仕事、農業、家族の思い出に関する短いエントリを作成・整理しています。
工場のルーチンを覚えたり、小さなプロジェクトを追跡したり、物事を一箇所に整理したりするのに役立ちます。
管理パネルでAPIキーを作成するたびに、数時間しか機能しません。
その後、突然機能しなくなり、「無効なAPIキー」と表示されます。
新しいキーを作成する必要があり、それが私のセットアップを壊します。
これは1週間で数回すでに発生しています。
- ユーザーレベルのAPIキー(グローバルではない)
- レート制限は450に設定
- ログを確認済み
- さまざまな設定を試した
- 何も効果がない — キーは数時間後に無効になる
自動的に期限切れにならないAPIキーを作成する方法はありますか?
または、シングルユーザーセットアップのためのより良い認証方法がありますか?
このDiscourseセットアップは、仕事と私生活の両方を管理するのに本当に役立ちます。
これはプライベートなシステムで、自分のサーバー上にあり、公開ユーザーはいません — 私だけです。
このAPIの問題が解決されれば、他の人もフォーラムだけでなく、個人の記憶システムとしてもDiscourseをこのように利用できると信じています。
技術詳細
-
ドメイン: https://www.enit.hu
-
バージョン: Discourse 3.6.0.beta2-latest
-
セットアップ: Docker on Ubuntu 22.04 LTS
-
VPS: RackForest (2GB RAM)
-
ユーザー: シングル管理者 (adminjozsi)
-
なぜキーが無効になるのですか?
-
隠された有効期限設定はありますか?
-
どうすれば安定させられますか?
どのような助けでもいただけると大変感謝します。
もし動作する解決策が見つかったら、同様の状況にある他の人が利用できるように、短いガイドを喜んで書きます。
よろしくお願いします。
József Tomkó
https://www.enit.hu