Amethi
(Jay Van der Zant)
2020 年 2 月 14 日午後 3:38
1
Discourse の API を通じて編集コンテンツを移行しており、移行テスト用に新しい開発環境の Discourse インスタンスを立ち上げています。リプライ付きのトピックを 3 つ作成できるのですが、4 つ目を作成しようとするとリクエストがフリーズしてしまいます。
これはスパム対策やレート制限の設定によるものかと考え、トピック作成に関与しそうな設定をすべて無効化して確認しましたが、問題は解消されません。
この状況に対するガイダンスはありますでしょうか?
移行先は新規の Discourse インスタンスであるためメンバーが存在しません。そのため、移行プログラムはトピックやリプライの著者として必要なユーザーアカウントをその都度作成しています。本番環境では既にアカウントが存在する予定です。
設定:
Amethi
(Jay Van der Zant)
2020 年 2 月 14 日午後 3:44
2
ああ、新しいトピックを移行できなくなりました。
スパム対策機能を完全に無効にする方法はありませんか?
justin
(Justin DiRose)
2020 年 2 月 14 日午後 4:34
3
API を使おうとしている理由は何ですか?インポートスクリプト のいずれかを使うのはいかがでしょうか?
Amethi
(Jay Van der Zant)
2020 年 2 月 14 日午後 4:57
4
正直、スクリプトが存在するとは知りませんでした。
私のコンテンツはカスタムデータベースにあります。幸い、私は開発者なので、C#プログラムを作成してデータベースを照会し、APIを使用してトピックや返信を作成するのはそれほど難しくはありませんでした。しかし、Discourseのブロック機能が発動するまではの話でした :-/
simon
2020 年 2 月 14 日午後 5:36
5
リクエストがフリーズした際、Discourse からエラーメッセージが返されていますか?
返されているエラーメッセージに応じて、API リクエストに skip_validation パラメータを追加することで問題を解決できる可能性があります。このパラメータは true に設定してください。このパラメータを設定すると、Discourse がサイト設定で定義された条件に投稿が適合しているか確認するための多くのチェックがスキップされます。
Amethi
(Jay Van der Zant)
2020 年 2 月 14 日午後 6:00
6
私の確認範囲では、リクエストは単にフリーズしているようです。ただし、私が API と対話するために使用しているパッケージには、いくつかのログ機能があります。まず、それを使ってエラーメッセージを特定してみましょう。そのパッケージには、バリデーションをスキップするオプションがありません。パラメータを追加するために、パッケージを修正する必要があるかもしれません。
アドバイスありがとうございます。
C# Wrapper to the Discourse Api
Amethi
(Jay Van der Zant)
2020 年 2 月 14 日午後 10:49
7
POST リクエストに
skip_validations=true
というパラメータを追加することで解決しました。@simon さん、ありがとうございます!