【问题标题】:Configuring instagram-node-lib with subscriptions使用订阅配置 instagram-node-lib
【发布时间】:2014-07-06 02:14:12
【问题描述】:

我希望对某个主题标签进行实时更新,并将图片打印在屏幕上。我在使用 instagram-node-lib 模块设置我的 node.js 服务器时遇到问题。但是我在运行文件(node server.js)时仍然收到错误;

https://github.com/mckelvey/instagram-node-lib

这是我的实现(使用 express 3.5.1 的 server.js):

var express = require("express");
var app = express();
var port = process.env.PORT || 3000;
var io = require('socket.io').listen(app.listen(port));
var Instagram = require('instagram-node-lib');
var http = require('http');
var request = ('request');
var intervalID;

var pub = __dirname + '/public',
    view = __dirname + '/views';

var clientID = '*****',
    clientSecret = '*****';

Instagram.set('client_id', clientID);
Instagram.set('client_secret', clientSecret);
Instagram.set('callback_url', 'http://my_url.com/callback');
Instagram.set('redirect_uri', 'http://my_url.com');
Instagram.set('maxSockets', 10);

Instagram.subscriptions.subscribe({
  object: 'tag',
  object_id: 'lol',
  aspect: 'media',
  callback_url: 'http://my_url.com/callback',
  type: 'subscription',
  id: '3'
});

app.configure(function(){
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(app.router);
    app.use(express.static(pub));
    app.use(express.static(view));
    app.use(express.errorHandler());
});

app.get('/callback', function(req, res){
  Instagram.subscriptions.handshake(req, res);
});

app.post('/callback', function(req, res) {
    var data = req.body;
    // Grab the hashtag "tag.object_id"
    // concatenate to the url and send as a argument to the client side
    data.forEach(function(tag) {
      var url = 'https://api.instagram.com/v1/tags/' + tag.object_id + '/media/recent?client_id=******';
      sendMessage(url);

    });
    res.end();
});

console.log("Listening on port " + port);

一切似乎都很好,但是在运行命令(node server.js)时,我得到:

   info  - socket.io started
connect.multipart() will be removed in connect 3.0
visit https://github.com/senchalabs/connect/wiki/Connect-3.0 for alternatives
connect.limit() will be removed in connect 3.0
Listening on port 3000
APISubscriptionError occurred: Invalid response in _request

(我也有 socket.io 的东西,但我把它放在一边专注于问题。)

APISubscriptionError 与我尝试和执行的订阅量直接相关。在这种情况下,只考虑标签“lol”的那个。我只想顺利运行没有这个错误。

【问题讨论】:

    标签: javascript node.js express instagram


    【解决方案1】:

    我能够找出我的问题,它与 Instagram-node-lib(顺便说一句,这是一个病态的库)无关。我需要将我的所有 url 定义为 http://MY_URL.com:3000,因为我在端口 3000 上运行。这在尝试订阅我的回调 url 时产生了冲突。为了使您不需要使用 :3000 后缀,似乎我需要通过 nginx 为端口 80 创建一个代理来运行节点。

    【讨论】:

      猜你喜欢
      • 2016-12-02
      • 2023-03-03
      • 2020-02-10
      • 1970-01-01
      • 2021-01-01
      • 1970-01-01
      • 2021-10-02
      • 1970-01-01
      • 2018-01-17
      相关资源
      最近更新 更多