使用Instagram API我正在调用端点。 https://api.instagram.com/v1/tags/MYTAG/media/recent?access_token=MYACCESSTOKEN
从我的应用程序调用与来自apigee.com的调用时,我收到了不同的结果。不同之处在于access_token。
当我使用https://apigee.com/console/instagram并进行instagram api通话时,我会收到8张图片。 (用我的Instagram信用卡登录后),这是我所期望的。
如果我使用我的nodejs应用程序使用相同的信用卡登录,我会获得一个不同的身份验证令牌(您可以假设),但我得到一个空的数据集。
{ pagination: { next_min_id: 'STUFF', min_tag_id: 'STUFF' },
meta: { code: 200 },
data: []
}
我一定很遗憾。 任何人都可以在我的nodejs代码中看到我可能做错了什么 谢谢你的帮助
这是nodejs代码:::
var https = require('https');
var http = require('http');
var express = require('express');
var app = express();
var fs = require("fs");
var client_id = "CLIENT_ID";
var client_secret = "CLIENT_SECRET";
var redirect_uri = 'https://MYDOMAIN/handleauth';
var authorize_link = 'https://api.instagram.com/oauth/authorize/?client_id=' + client_id + '&redirect_uri=' + redirect_uri + '&response_type=code';
app.get('/authorize_user', function (req, res) {
res.redirect(authorize_link);
});
app.get('/handleauth', function (req, res) {
res.send("ok");
if (req.query['code']) {
var request = require('request');
var post_data = {
'client_id': client_id,
'client_secret': client_secret,
'grant_type': 'authorization_code',
'redirect_uri': redirect_uri,
'code': req.query['code']
};
var headers = {
'User-Agent': 'Super Agent/0.0.1',
'Content-Type': 'application/x-www-form-urlencoded'
}
var post_options = {
url: 'https://api.instagram.com/oauth/access_token',
method: 'POST',
headers: headers,
form: post_data
};
request(post_options, function (error, response, body) {
if (error || response.statusCode != 200) {
console.error(error);
} else {
var pbody = JSON.parse(body);
console.log('Response: ' + pbody);
console.log('pbody.access_token: ' + pbody.access_token);
var options = {
url: 'https://api.instagram.com/v1/tags/MYTAG/media/recent?access_token='+pbody.access_token,
method: 'GET'
};
request(options, function (error, response, body) {
if (error && response.statusCode != 200) {
console.error(error);
}else{
var jsonobjArr = JSON.parse(body);
console.log(jsonobjArr);
}
});
}
});
}
});
var options = {
key: fs.readFileSync("/ssl_certs/me.key"),
cert: fs.readFileSync("/ssl_certs/me_bundle.crt")
};
https.createServer(options, app).listen(4000, function () {
console.log("HTTPS Express Instagram server listening on port " + 4000);
});
答案 0 :(得分:0)
数据仅限于来自每个用户的10个用户和20个最新媒体。
我意识到这一点,因为我只能从我发布的标签中接收数据。 您的问题帮助我弄清楚如何生成访问令牌。我无法让node-rest-client工作。谢谢!
我的建议是建立最好的应用程序来缓解审批流程。