4

Disqus API を使用して、既存のディスカッション/フォーラムに投稿を追加しようとしています。ドキュメントでは、ゲストとして認証なしでコメントを送信できることを読むことができます。ドキュメントには次のように書かれています: http://disqus.com/api/docs/posts/create/

匿名のコメントは、次の 2 つの条件の下で許可されます。

  1. レガシー認証と秘密鍵を使用しています
  2. 公開鍵を使用している、検証済みのリファラーから来た、認証されていない、投稿を作成しようとしているフォーラムがアプリケーションの信頼できるフォーラムにリストされている。

匿名のコメントを作成するには、author_email と author_name、およびオプションで author_url パラメーターを渡すだけです。

このコードを使用して、PHP でコメントを作成します。(私は非常に単純な cURL クラスを使用していますが、disqus.com/api のコンソールで同じものを取得しているため、問題はありません)

$curl = new Curl(1); 

$curl->addPostVar('thread','THREAD_ID');
$curl->addPostVar('message','Text message');
$curl->addPostVar('author_email','My email');
$curl->addPostVar('author_name','My name');
$curl->addPostVar('api_secret','My application secret API key');

echo $curl->exec('https://disqus.com/api/3.0/posts/create.json');

しかし、JSONでエラーが発生します

{"code": 4, "response": "You must be authenticated to perform this action"}

他の誰かがすでにこれを尋ねていることは知っていますが ( Disqus API create post error )、提案された応答は OAuth を使用して認証を受けることでした。しかし、私は認証したくありません。名前と電子メールでゲストのコメントを送信したいです。どこが間違っていますか?

返信ありがとうございます。

4

3 に答える 3

3

匿名でコメントするには、アクセス トークンを渡しません。ただし、次の条件が満たされていることを確認する必要があります。

  1. Web サイトの設定の [全般] で、[ゲストのコメントを許可する] がオンになっていることを確認します。
  2. Disqus Web サイト設定の [詳細] タブで、ドメインを信頼できるドメインとして追加します。
  3. API アプリケーションの設定で、同じドメインを信頼できるドメインから API アプリケーションの信頼できるドメイン リストに追加します。
  4. コメントを投稿する API リクエストを作成するときは、「referer」ヘッダーに信頼できるドメインの 1 つにあるドメインが含まれていることを確認し、「host」ヘッダーを「.disqus.com」に設定してください。
  5. 公開鍵を使用して API リクエストを行います

そのルールに従って、リクエストを正常に行うことができました。

明確にするために、API を介して匿名のコメントを投稿するには、サイトを所有/モデレートする必要があります。また、これを行うときは、必ず追加のstrict=1引数を渡してください。デフォルトでは、エラーが発生するオプションの引数は単純に削除されるため、author_name と author_email がエラーをスローすると、コメントが自分自身として投稿される可能性があります。

于 2013-03-15T15:20:23.457 に答える