node-fblook-server/server.js

45 lines
1.1 KiB
JavaScript

const Koa = require('koa')
const Router = require('koa-router')
const koaLogger = require('koa-logger')
const fbparser = require('./facebook-parser')
const verifyKey = process.env.API_KEY || 'mtfos'
const app = new Koa()
const server = app.listen(3000, () => {
console.log(`server start on port ${server.address().port}`)
})
const rootRouter = new Router()
app.use(koaLogger())
app.use(rootRouter.allowedMethods())
app.use(rootRouter.routes())
rootRouter.get('/getpost', async (c, n) => {
let key = c.get('x-mtfos-key')
if (key !== verifyKey) c.throw(403, 'verify key not match')
let fbid = c.query.fbpage || ''
if (typeof fbid !== 'string' || fbid.trim().length === 0) c.throw(400, 'facebook page id format error')
fbid = decodeURIComponent(fbid.trim())
let postData = await fbparser.getLastPost(fbid)
let resData = {}
if (postData !== null) {
resData.page = fbid
resData.postid = postData.id
resData.text = postData.txt
resData.time = parseInt(postData.time)
resData.link = postData.link
}
postData = null
c.body = {
post: resData
}
})
module.exports = server