43 lines
1.1 KiB
JavaScript
43 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 = postData.time
|
|
resData.link = postData.link
|
|
}
|
|
|
|
c.body = {
|
|
post: resData
|
|
}
|
|
})
|
|
|
|
module.exports = server
|