【问题标题】:Nodejs, http post jsonNodejs,http post json
【发布时间】:2019-03-25 15:07:30
【问题描述】:

这是一个示例帖子,我想在我的 Nodejs 服务器中执行以获取 ClientID 和机密。

请求示例:

curl --request POST \
  --url https://api.opskins.com/IOAuth/CreateClient/v1/ \
  --header 'authorization: Basic {{AUTH_HASH}}' \
  --data name=TestApp2 \
  --data redirect_uri=http://localhost:1234

响应返回 JSON 结构如下:

{
    "status": 1,
    "time": 1535408581,
    "response": {
        "secret": "$nGwYVda@@PErKAUpG#kHQ&YA1L)A*X1",
        "client": {
            "client_id": "ff371b045307",
            "name": "TestApp2",
            "redirect_uri": "http://localhost:1234",
            "time_created": 1535407757,
            "has_secret": true
        }
    }

我正在尝试请求:

const request = require('request');

var headers = {
        'authorization': 'Basic ***my-api-key****'
    };

    var dataString = 'name=TestApp2&redirect_uri=http://localhost:5000';

    var options = {
        url: 'https://api.opskins.com/IOAuth/CreateClient/v1/',
        method: 'POST',
        headers: headers,
        body: dataString
    };

    function callback(error, response, body) {

            console.log(body);

    }

    request(options, callback);

但得到这样的错误输出:

{"status":401,"time":1540115259,"message":"API Key Required"}

我一直在尝试不同的代码和中间件,但没有成功。我的测试也适用于 Postman。我需要帮助才能发布它并获取我的 client_id 和秘密。

【问题讨论】:

  • 在您的标头中,授权密钥是大写的 A。这可能是问题所在,因为您的日志消息说 API 丢失。
  • 我也这么认为并尝试了“授权”,授权,授权也尝试了所有这些都删除了我的 api 密钥前面的基本密钥。但他们都没有工作。
  • 尝试在标题中添加“Content-Type”="application/json"。
  • 改变了一些东西。现在我得到这个输出:

    400 Bad Request

    Malformed JSON request body.
  • 在你的 body 中执行如下 body:JSON.parse(dataString),让我们看看是否有效

标签: node.js post oauth request http-post


【解决方案1】:

我找到了办法。这对我来说真的很棘手。我需要使用我的 API 密钥和客户端 ID。 波纹管代码有效。非常感谢vitomadio!

我使用了来自 npm 的reqclient

这是我的代码

   var client = new RequestClient({
        baseUrl:"https://api.opskins.com/IOAuth/CreateClient/",
        debugRequest:true, debugResponse:true,
        auth: {
            user:"***My_apikey****",

        }
    });

    var resp = client.post("v1/", {"name": "testApp2", "redirect_uri":"http://localhost:5000/"},{headers: {"authorization":"Basic **my_clientID"}}).then(response => {
       // console.log(response);
    });

我也真的是居里,想知道如何通过请求来做到这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-09
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    相关资源
    最近更新 更多