Javascript 使用订阅配置instagram节点库
我正在寻找一个特定的标签做实时更新,并有图片打印在屏幕上。我在使用instagram节点库模块设置node.js服务器时遇到问题。但是我在运行文件(node server.js)时仍然收到一个错误 以下是我的实现(使用express 3.5.1的server.js): 看起来一切正常,但在运行命令(node server.js)时,我得到: (我也有socket.io的东西在里面,但我忽略了它以关注问题。)Javascript 使用订阅配置instagram节点库,javascript,node.js,express,instagram,Javascript,Node.js,Express,Instagram,我正在寻找一个特定的标签做实时更新,并有图片打印在屏幕上。我在使用instagram节点库模块设置node.js服务器时遇到问题。但是我在运行文件(node server.js)时仍然收到一个错误 以下是我的实现(使用express 3.5.1的server.js): 看起来一切正常,但在运行命令(node server.js)时,我得到: (我也有socket.io的东西在里面,但我忽略了它以关注问题。) APISubscriptionError与我尝试和执行的订阅量直接相关。在这种情况下,
APISubscriptionError与我尝试和执行的订阅量直接相关。在这种情况下,只考虑标记“lol”的一个。我只希望能够顺利运行而不出现此错误。我能够找到我的问题,并且它与Instagram节点库(顺便说一句,这是一个病态的库)无关。我需要将所有URL定义为,因为我在端口3000上运行。这在尝试订阅我的回调url时造成了冲突。为了使您不需要使用:3000后缀,似乎需要通过nginx为端口80创建一个代理来运行节点
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);
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