0
Webアプリケーションでinstagram APIのサーバーサイド認証を使用しようとしています。私はIntagram's API Pageで提供された手順に従ってきましたが、私はエラーyou must provide a client_id
を得続けます。コードはnode/express.jsで書かれています。ここに私のコードです。
PS:istagram-node APIの使用を提案しないでください。
index.jsInstagram OAuthException:クライアント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);
});
お役に立てば幸いです値を指定するfクライアントのIDとクライアントの秘密。 https://nodejs.org/api/process.html#process_process_envをご覧ください。 env2ライブラリの使用を検討し、環境変数をJavaScriptで宣言する代わりに.envに格納することもできます。 –
私はherokuを使ってアプリをホストしています。私は 'heroku config:set CLIENT_ID = ...'を使って環境変数を設定しました。ですから、私はprocess.envを使ってそれらにアクセスできます。 'heroku config:get CLEINT_ID'を実行すると正しく出力されます。 –
" data "変数が正しいかどうかを確認するか、質問に添付してください。 – Vladimir