Node.js 无法使用节点中的请求模块获取Instagram访问令牌

Node.js 无法使用节点中的请求模块获取Instagram访问令牌,node.js,oauth,request,instagram,instagram-api,Node.js,Oauth,Request,Instagram,Instagram Api,我正在使用请求和Instagram api构建一个简单的节点应用程序,并试图在oauth过程的最后一步中调用Instagram访问令牌。出于某些原因,Instagam的api响应为400,表示在我的请求正文中明确指定了我的客户端id时,该id未指定。以下是instagram oauth进程的链接: 这是我的申请代码: var options = { url: "https://api.instagram.com/oauth/access_token", method: 'POST',

我正在使用请求和Instagram api构建一个简单的节点应用程序,并试图在oauth过程的最后一步中调用Instagram访问令牌。出于某些原因,Instagam的api响应为400,表示在我的请求正文中明确指定了我的客户端id时,该id未指定。以下是instagram oauth进程的链接:

这是我的申请代码:

var options = {
  url: "https://api.instagram.com/oauth/access_token",
  method: 'POST',
  oauth: {
    "client_id": process.env.CLIENT_ID,
    "client_secret": process.env.CLIENT_SECRET
  },
  json: {
    "client_id": process.env.CLIENT_ID,
    "client_secret": process.env.CLIENT_SECRET,
    "grant_type" : "authorization_code",
    "code" : response.req.query.code,
    "redirect_uri" : 'http://127.0.0.1:5000/redirect'
  }
};

request(options, function ( error, response ) {
  if(error) { console.log(error); }
  else { console.log(JSON.stringify(response)); }
});
以下是答复:

{"statusCode":400,"body":{"code":400,"error_type":"OAuthException","error_messag
e":"You must provide a client_id"},"headers":{"content-language":"en","expires":
"Sat, 01 Jan 2000 00:00:00 GMT","vary":"Cookie, Accept-Language","pragma":"no-ca
che","cache-control":"private, no-cache, no-store, must-revalidate","date":"Wed,
 27 Apr 2016 05:37:03 GMT","content-type":"application/json","set-cookie":["csrf
 token=456dc5df05f5b0aad286723004e395fe; expires=Wed, 26-Apr-2017 05:37:03 GMT; M
ax-Age=31449600; Path=/","mid=VyBP_wAEAAGhT9YCRDGVBM6tksC7; expires=Tue, 22-Apr-
2036 05:37:03 GMT; Max-Age=630720000; Path=/"],"connection":"close","content-len
gth":"94"},"request":{"uri":{"protocol":"https:","slashes":true,"auth":null,"hos
t":"api.instagram.com","port":443,"hostname":"api.instagram.com","hash":null,"se
arch":null,"query":null,"pathname":"/oauth/access_token","path":"/oauth/access_t
oken","href":"https://api.instagram.com/oauth/access_token"},"method":"POST","he
aders":{"accept":"application/json","content-   type":"application/json","content-l
ength":223,"Authorization":"OAuth oauth_client_id=\"[THE ACUAL RESPONSE       DISPLAYS ID HERE]\",oauth_client_secret=\"[THE ACTUAL RESPONSE DISPLYS SECRET     HERE]\",oauth_nonce=\"cc
173578667148d1bdf341926b9e2cd0\",oauth_signature_method=\"HMAC-SHA1\",oauth_time
stamp=\"1461735413\",oauth_version=\"1.0\",oauth_signature=\"zeQxrYVNSsveztczszW
FiY3jGz8%3D\""}}}

我认为环境变量process.env.CLIENT\u ID没有值。
尝试使用硬编码字符串,而不是process.env.CLIENT\u ID和process.env.CLIENT\u SECRET

我认为环境变量process.env.CLIENT\u ID没有值。
尝试使用硬编码字符串,而不是process.env.CLIENT_ID和process.env.CLIENT_SECRET

我在其他API中也为此挣扎了好几天。但这对所有api oAuth 2请求都有效

request.post({url:'https://api.instagram.com/oauth/access_token', form: {
    redirect_uri: 'http://localhost/dashboard',
    client_id: 'xxxxxxxxxxx',
    client_secret: 'xxxxxxxxxxxxx',
    code: 'xxxxxxxxxxxxxxx',
    grant_type: 'authorization_code'
}
}, function(err,httpResponse,body){ /* ... */ 
console.log('err: ' + err)
console.log('body: ' + body)
})
我在注册应用程序时也使用重定向url
不要只使用XAMPP,因为如果您使用XAMPP,您将始终被重定向到,这意味着您无法从

我在其他API上也为此挣扎了好几天。但这对所有api oAuth 2请求都有效

request.post({url:'https://api.instagram.com/oauth/access_token', form: {
    redirect_uri: 'http://localhost/dashboard',
    client_id: 'xxxxxxxxxxx',
    client_secret: 'xxxxxxxxxxxxx',
    code: 'xxxxxxxxxxxxxxx',
    grant_type: 'authorization_code'
}
}, function(err,httpResponse,body){ /* ... */ 
console.log('err: ' + err)
console.log('body: ' + body)
})
我在注册应用程序时也使用重定向url
不要只使用XAMPP,因为如果您使用XAMPP,您将始终被重定向到,这意味着您无法从

否环境变量记录为my id和secret的字符串,因此它们肯定不是未定义的。这可能是我在请求正文中指定它们的方式吗?不,环境变量记录为我的id和secret的字符串,因此它们肯定不是未定义的。这可能是我在请求正文中指定它们的方式吗?