【问题标题】:trying to get a list of images with a specific tag using the instagram api and node尝试使用 instagram api 和节点获取具有特定标签的图像列表
【发布时间】:2016-04-03 07:36:08
【问题描述】:

我正在使用 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);
});

【问题讨论】:

    标签: node.js instagram


    【解决方案1】:

    You're in Sandbox Mode.

    数据仅限于 10 个用户和每个用户的 20 个最新媒体。

    我意识到这一点是因为我只能从我发布的标签中接收数据。 您的问题帮助我弄清楚了如何生成访问令牌。我无法让node-rest-client 工作。谢谢!

    我的建议是构建最好的应用程序来缓解审批流程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多