0
我一直在嘗試在我的web應用程序中使用instagram API的服務器端身份驗證。我已按照Intagram's API Page提供的步驟操作,但我一直收到錯誤you must provide a client_id
。代碼寫在node/express.js中。這是我的代碼。 PS:請不要建議我使用istagram-node API。
index.jsInstagram OAuthException:您必須提供client_id
var bodyParser = require('body-parser');
var express = require('express');
var app = express();
var https = require('https');
var session = require('express-session');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:true}));
app.use(express.static(__dirname+'/public'));
app.use(session({
secret: process.env.SECRET,
resave: true,
saveUninitialized: false
}))
app.set('port',process.env.PORT);
app.get('/',function(req,res){
res.render('index')
});
app.get('/home',function(req,res){
req.session.code = req.query.code;
var data = JSON.stringify({
client_id: process.env.CLIENT_ID,
client_secret: process.env.CLIENT_SECRET,
grant_type: "authorizaton_code",
redirect_uri: "...",
code: req.session.code
})
var options = {
headers:{
'content-type': 'application/x-www-form-urlencoded'
},
hostname: 'api.instagram.com',
path: '/oauth/access_token',
method:'POST',
port:443
}
var request = https.request(options,function(resp){
resp.on('data',function(chunk){
req.session.data = chunk.toString();
})
})
request.write(data);
request.end();
setTimeout(function(){
res.json(req.session.data)
},5000);
})
app.listen(app.get('port'),function(){
console.log("All eyes at "+process.env.PORT);
});
你沒有指定值o f客戶端ID和客戶端密碼。你可以看看https://nodejs.org/api/process.html#process_process_env。您也可以考慮使用env2庫並將您的環境變量存儲在.env中,而不是使用JavaScript進行聲明。 –
我使用的是heroku來託管應用程序。我使用'heroku config:set CLIENT_ID = ...'來設置環境變量。所以,我可以使用process.env訪問它們。我得到正確的輸出,當我運行'heroku配置:獲取CLEINT_ID' –
驗證如果「數據」變量是正確的或附加到你的問題。 – Vladimir