Disqus - 如何通过当前登录的用户?

时间:2013-06-27 20:08:47

标签: api disqus commenting

我使用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的方式。示例用户标识:3096795,email =“a@a.com”,Name =“Test”。现在,当该用户登录到该网站时,它也会登录到Disqus。我可以在http://disqus.com/api/sso/users/中看到此用户,ID = 3096795。

我有几个问题:

1)我可以使用jquery ajax发送经过身份验证的用户并获取用户详细信息吗?或者这只能通过服务器端完成? (爪哇/ PHP)

2)如果我将?remote_auth = [remote_auth]作为查询字符串传递,它会起作用吗?

3)如果是,remote_auth值在HMAC-> SHA1(secret_key,message +''+ timestamp)之间有空格,那么如何将其作为查询字符串参数传递?

4)如果否,那么如何将用户传递到listActivity.json端点?如果我传递的是userid,那么它会返回给我一些其他用户而不是我创建的用户。

以下请求会返回其他用户。

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

如何确保我传递的用户ID是唯一的,而且还没有被其他disqus帐户占用?

我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

您的remote_authform of authentication,就像access_token一样,因此您希望将remote_auth=<YOUR_PAYLOAD>中的内容传递给您{。}}。

如果您传递“user =”,那么ID必须是Disqus用户ID,这与您的remote_auth ID不同。您的remote_auth是一种身份验证形式,就像access_token一样。但是,请记住,我们不会为经过身份验证的Disqus用户返回SSO用户的详细信息。这是因为详细信息由您(SSO网站所有者)管理。

回答您的其他问题:

  1. 您可以使用客户端API获取这些详细信息,但我们建议使用服务器端API +缓存结果,以避免陷入API限制。

  2. 对有效负载进行URL编码,这将起作用

答案 1 :(得分: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);
相关问题