line.js 2 KB
var unirest = require('unirest');
var mongo = require('mongodb')

module.exports.lineNoti = async (req, res) => {
    console.log('===== POST lineNoti =====')
    console.log('url', req.originalUrl);
    console.log('headers', req.headers);
    console.log('query', req.query);
    console.log('params', req.params);
    console.log('body', req.body);

    unirest.post('https://notify-bot.line.me/oauth/token')  
    .form({
        grant_type: 'authorization_code',
        code: req.query.code,
        redirect_uri: 'http://127.0.0.1:3002/linenoti',
        client_id: 'VZ79ZR2Xtc15nZKQexT3sI',
        client_secret: 'lsqqZr6B2PJXrpjgNbw4DFr88DJYoFrFSQ5VTPlICaW'
    })
    .end(function (response) {
        console.log(response.body);
        unirest.post('https://notify-api.line.me/api/notify')
        .headers({
            Authorization: `Bearer ${response.body.access_token}`
        })
        .form({
            message: `token:${response.body.access_token},state:${req.query.state}`
        }).end(function (response) {
            res.status(304).redirect(response.body)
        });
    });
    
}

module.exports.callback = async (req, res) => {
    console.log('===== GET lineCallback =====')
    console.log('url', req.originalUrl);
    console.log('headers', req.headers);
    console.log('query', req.query);
    console.log('params', req.params);
    console.log('body', req.body);

    unirest.post('https://api.line.me/oauth2/v2.1/token')
    .form({
        grant_type:"authorization_code",
        code:req.query.code,
        redirect_uri:"http://127.0.0.1:3002/api/callback",
        client_id:"1655116583",
        client_secret:"90ada7fc7b535e514dfa3d84c20c33ff"
    }).end(function (response) {
        unirest.get('https://api.line.me/v2/profile')
        .headers({
            Authorization: `Bearer ${response.body.access_token}`
        }).end(function (response) {
            res.send({
                userId : response.body.userId,
                date: req.query.state
            })
        });
    });

}