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
|