0

Disqus API を使用して、ログインしているユーザーの詳細を取得しています。現在ログインしているユーザーを渡す方法がわかりません。

私は api_key(public) と remote_auth の両方を持っており、Jquery ajax を使用して http 経由で API リクエストを送信しています。

私がこのようなことをしたら、

https://disqus.com/api/3.0/users/details.json?api_key=[apikey]

「ユーザーを提供するか、ユーザーを認証する必要があります」と表示されます。これで、ログイン ユーザー remote_auth ができました。

参考までに: これが remote_auth の作成方法です。ユーザー ID の例: 3096795、電子メール = "a@a.com"、名前 = "Test"。このユーザーが Web サイトにログインすると、Disqus にもログインします。このユーザーは、http: //disqus.com/api/sso/users/ で ID = 3096795 で確認できます。

いくつか質問があります:

1) jquery ajax を使用して、認証されたユーザーを送信し、ユーザーの詳細を取得できますか? または、これはサーバー側でのみ行うことができますか? (Java/PHP)

2) ?remote_auth=[remote_auth] をクエリ文字列として渡すと、機能しますか?

3) はいの場合、remote_auth 値には HMAC->SHA1(secret_key, message + ' ' + timestamp) の間にスペースがあるため、クエリ文字列パラメーターとして渡すにはどうすればよいですか?

4) いいえの場合、ユーザーをlistActivity.jsonエンドポイントに渡す方法は? ユーザーIDを渡すと、作成したユーザーではなく、他のユーザーが返されます。

以下のリクエストは、別のユーザーを返します。

https://disqus.com/api/3.0/users/details.json?api_key=[apikey]&user=3096795

渡すユーザー ID が一意であり、別の disqus アカウントに既に使用されていないことを確認するにはどうすればよいですか?

何か不足していますか?

4

2 に答える 2

1

Yourremote_authは と同様に認証の形式であるaccess_tokenため、リクエストでそれを として渡す必要がありますremote_auth=<YOUR_PAYLOAD>

"user=" を渡す場合、その ID は Disqus ユーザー ID である必要がありますが、これは remote_auth ID とは異なります。remote_auth は、access_token と同様に、認証の形式です。ただし、SSO ユーザーについては、認証された Disqus ユーザーほど多くの詳細が返されないことに注意してください。これは、SSO サイトの所有者であるあなたが詳細を管理しているためです。

他の質問に答えるには:

  1. クライアント側 API を使用してこれらの詳細を取得できますが、API の制限にぶつからないように、サーバー側 API + 結果のキャッシュをお勧めします。

  2. ペイロードを URL エンコードすると、これが機能します

于 2013-06-28T00:32:39.713 に答える
0

https://github.com/anthavio/disquoを使用する方が簡単

    DisqusApplicationKeys keys = new DisqusApplicationKeys("...api_key...", "...secret_key...", "...access_token...");
    DisqusApi disqus = new DisqusApi(keys);

    //SSO is available only to premium accounts
    SsoAuthData ssoauth = new SsoAuthData("custom-12345-id", "Firstname", "Surname");
    //SSO User identity is used to create post
    disqus.posts().create(ssoauth, keys.getApiSecret(), threadId, "Hello world " + new Date(), null);
于 2014-10-15T23:45:54.523 に答える