【问题标题】:disqus API missing required parameter: grant_typedisqus API 缺少必需参数:grant_type
【发布时间】:2012-06-27 16:52:26
【问题描述】:

我正在尝试通过 disqus API 检索 access_token。

这是我的网址:

https://disqus.com/api/oauth/2.0/access_token/?client_id=cvwNO7HaRwgYDq9anat8j7uzowJ8HBEz8gH7mUnmMhC0BKZZTkObc5d7o242liNG&grant_type=authorization_code&client_secret=Hrrgy1ZLcLN0qjmZhzXR2owET8cGazcbcGNxTlsWEJYiNfc3JcQLbKx2PYW6yNU7&redirect_uri=http://www.aftenposten.no&code=PM6QYwUJ

我收到一个错误:缺少必需参数:grant_type

我正在使用以下代码来获取响应:

HttpWebRequest request = HttpWebRequest.CreateHttp(uri);
request.Method = "POST";
request.BeginGetResponse(new AsyncCallback(getAccessTokenResponse), request);

【问题讨论】:

    标签: c# api url oauth-2.0 disqus


    【解决方案1】:

    您需要在请求正文中传递表单数据,而不是作为 url 参数。试试这个:

    var uri = "https://disqus.com/api/oauth/2.0/access_token/"
    HttpWebRequest request = HttpWebRequest.CreateHttp(uri);
    var data = "client_id=[your client id]"
    data += "&grant_type=authorization_code"
    data += "&client_secret=[your client secret]"
    data += "&redirect_uri=http://www.aftenposten.no&code=PM6QYwUJ"
    var postData = Encoding.ASCII.GetBytes(data);
    
    request.Method = "POST";
    request.ContentType = "application/x-www-form-urlencoded";
    request.ContentLength = postData.Length;
    
    using (var stream = request.GetRequestStream())
    {
        stream.Write(data, 0, data.Length);
    }
    
    var response = (HttpWebResponse)request.GetResponse();
    var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
    

    【讨论】:

    • 如果您提供的 API 密钥是真实的,您可能想要更改您的 API 密钥。
    猜你喜欢
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    • 2019-12-11
    • 2012-01-02
    • 2014-06-29
    • 1970-01-01
    • 2014-09-10
    相关资源
    最近更新 更多