首页 文章

Instagram实时api

提问于
浏览
2

我正在尝试使用Instagram real-time api但我无法使其正常工作 . 我创建了一个express.js服务器,响应订阅创建时的挑战验证 . 我的订阅详细信息获得了json响应,我可以从Instagram API列出我当前的订阅 .

一切正常......除了我没有收到POST请求 . 任何的想法?

问候!

1 回答

  • -1
    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);
    

    的index.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>
    

相关问题