linebot-mini-hono-sdk
TypeScript icon, indicating that this package has built-in type declarations

0.0.9 • Public • Published

sample

$ npm i hono linebot-mini-sdk
import { Hono } from 'hono'
import line from 'linebot-mini-sdk'
const app = new Hono()

let client: any;
let isAlreadyInited = false;

app.all('*', async(c:any, next) => {
	if(!isAlreadyInited){
		isAlreadyInited = true
    const config = {
      channelAccessToken: c.env.channelAccessToken || undefined,
      channelSecret: c.env.channelSecret || undefined ,
    }
    client = new line.MessagingApiClient(config);
	}
	await next()
})

app.get('/', (c) => c.text('Hello Hono!!!!'));

const handleEvent = async (event: any) => {
  if (event.type !== 'message' || event.message.type !== 'text') {
    return Promise.resolve(null);
  }

  const message = [{
    type: 'text',
    text: event.message.text
  }];

  try {
    const res = await client.replyMessage(event.replyToken, message);
    const json = await res.json();
    return Promise.resolve(json);
  } catch (error) {
    console.log(error)
    return Promise.resolve(error);
  }
}

app.post('/webhook', line.middleware, async (c) => {

    try {
      const body = await c.req.json();
      const events: any[] = body.events; // Explicitly define the type of 'events' as 'any[]'
      console.log(`req:`,events);
      const responses = await Promise.all(events.map((event: any) => handleEvent(event))); // Explicitly define the type of 'event' as 'any'
      console.log(`res:`,responses[0]);

      return c.json({ message: "ok" });
  } catch (error) {
      console.log(error)
  }

  return c.text('Hello Hono!')
})

export default app

Readme

Keywords

none

Package Sidebar

Install

npm i linebot-mini-hono-sdk

Weekly Downloads

1

Version

0.0.9

License

ISC

Unpacked Size

15.4 kB

Total Files

14

Last publish

Collaborators

  • n0bisuke