我正在尝试使用Instagram 实时 api ,但我无法使其工作。我创建了一个 express.js 服务器来响应订阅创建时的质询验证。我收到包含订阅详细信息的 json 响应,我可以从 Instagram API 列出我当前的订阅。
一切正常......除了我没有收到 POST 请求。任何想法?
问候!
我正在尝试使用Instagram 实时 api ,但我无法使其工作。我创建了一个 express.js 服务器来响应订阅创建时的质询验证。我收到包含订阅详细信息的 json 响应,我可以从 Instagram API 列出我当前的订阅。
一切正常......除了我没有收到 POST 请求。任何想法?
问候!
var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var request = require('request');
var bodyParser = require('body-parser');
app.use(bodyParser.json());
var CLIENT_ID ='';
var CLIENT_SECRET = '';
var CALLBACK_URL = 'http://website.com/subscribe';
app.get('/:object/:object_id', function (req, res) {
var object = req.params.object;
var object_id = req.params.object_id;
io.on('connection', function (socket) {
request.post('https://api.instagram.com/v1/subscriptions/', {form: {
client_id: CLIENT_ID,
client_secret: CLIENT_SECRET,
aspect: 'media',
object: object,
object_id: object_id,
callback_url: CALLBACK_URL
}});
socket.on('disconnect', function() {
request.del('https://api.instagram.com/v1/subscriptions?client_secret='+CLIENT_SECRET+'&object=all&client_id='+CLIENT_ID)
});
});
res.sendFile(__dirname + '/public/index.html');
})
app.get('/subscribe', function(req, res){
res.send(req.query['hub.challenge']);
});
app.post('/subscribe', function (req, res) {
io.emit('message', JSON.stringify(req.body));
})
http.listen(process.env.PORT);
索引.html
<!doctype html>
<html>
<head>
<title>htag</title>
</head>
<body>
<div id="stream"></div>
<script src="http://code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="https://cdn.socket.io/socket.io-1.3.4.js"></script>
<script>
var socket = io(window.location.origin);
socket.on('message', function (text) {
$('#stream').prepend('<p>' + text);
});
</script>
</body>
</html>