botbuilder-wechat-connector-ts
v1.0.0
Published
NodeJS Typescript Botbuilder Wechat Connector
Downloads
2
Maintainers
Readme
botbuilder-wechat-connector
NodeJS Typescript Botbuilder Wechat Connector
Notice
Targets BotBuilder Framework v3.*
Installation
npm install botbuilder-wechat-connector-ts
Table of Contents
Documentation
You can find documentation here
Features
- Microsoft Bot Framework Wechat Connector with simple setup
- Webhook Validation logic
- Supported message types:
- Text
- Image
- Card
- Music
- MpNews
- News
- Voice
- Video
- ShortVideo
- Link
- Location
- Typescript code with exported types for every end-point input/output
- Vanilla server and AWS Lambda support
Setup
Import
const facebook = require('botbuilder-wechat-connector');
or
import { WechatConnector, AWSLambdaHandler } from 'botbuilder-wechat-connector';
Sending Messages
Text Message
bot.dialog('/', function (session) {
session.send("Hello world!");
});
Image Message
import {Message} from 'botbuilder';
bot.dialog('/', function (session) {
const msg = new Message(session)
.attachments([
{
contentType: IWechatAttachmentType.Image,
content: {
mediaId: '<MEDIA_ID>'
}
}
]);
session.send(msg);
});
Card Message
import {Message} from 'botbuilder';
bot.dialog('/', function (session) {
const msg = new Message(session)
.attachments([
{
contentType: IWechatAttachmentType.Card,
content: {
card_id: '<CARD_ID>',
card_ext: '<CARD_EXT>'
}
}
]);
session.send(msg);
});
Music Message
import {Message} from 'botbuilder';
bot.dialog('/', function (session) {
const msg = new Message(session)
.attachments([
{
contentType: IWechatAttachmentType.Music,
content: {
title: '<TITLE>',
description: '<DESCRIPTION>',
url: '<URL>',
thumb_media_id: '<MEDIA_ID>'
}
}
]);
session.send(msg);
});
MpNews Message
import {Message} from 'botbuilder';
bot.dialog('/', function (session) {
const msg = new Message(session)
.attachments([
{
contentType: IWechatAttachmentType.MpNews,
content: {
mediaId: '<MEDIA_ID>'
}
}
]);
session.send(msg);
});
News Message
import {Message} from 'botbuilder';
bot.dialog('/', function (session) {
const msg = new Message(session)
.attachments([
{
contentType: IWechatAttachmentType.News,
content: {
"title": "<TITLE>",
"description": "<DESCRIPTION>",
"url": "<URL>",
"picurl": "<URL>"
}
}
]);
session.send(msg);
});
Voice Message
import {Message} from 'botbuilder';
bot.dialog('/', function (session) {
const msg = new Message(session)
.attachments([
{
contentType: IWechatAttachmentType.Voice,
content: {
mediaId: '<MEDIA_ID>'
}
}
]);
session.send(msg);
});
Video Message
import {Message} from 'botbuilder';
bot.dialog('/', function (session) {
const msg = new Message(session)
.attachments([
{
contentType: IWechatAttachmentType.Video,
content: {
mediaId: '<MEDIA_ID>',
thumbMediaId: '<THUMB_MEDIA_ID>'
}
}
]);
session.send(msg);
});
Receiving Messages
ShortVideo Message
{
contentType: IWechatAttachmentType.ShortVideo,
content: {
mediaId: '<MEDIA_ID',
thumbMediaId: '<THUMB_MEDIA_ID>'
}
}
Link Message
{
contentType: IWechatAttachmentType.Link,
content: {
title: '<TITLE>',
description: '<DESCRIPTION>',
url: '<URL>'
}
}
Location Message
{
contentType: IWechatAttachmentType.Link,
content: {
locationX: '<LOCATION_X>',
locationY: '<LOCATION_Y>',
scale: '<SCALE>',
label: '<LABEL>'
}
}
Example Express
import { WechatConnector } from 'botbuilder-wechat-connector';
import { UniversalBot } from 'botbuilder';
import { Router } from 'express';
const botConnector = new WechatConnector({
appID: WECHAT_APP_ID,
appSecret: WECHAT_APP_SECRET,
appToken: WECHAT_APP_TOKEN,
});
const bot = new UniversalBot(botConnector, <DIALOGS>);
const router = Router();
router.post('/api/messages', <RequestHandlerParams>botConnector.listen());
router.get('/api/messages', <RequestHandlerParams>botConnector.listen());
Example AWS Lambda
main.ts
import { WechatConnector, AWSLambdaHandler } from 'botbuilder-wechat-connector';
import { UniversalBot } from 'botbuilder';
const botConnector = new WechatConnector({
appID: WECHAT_APP_ID,
appSecret: WECHAT_APP_SECRET,
appToken: WECHAT_APP_TOKEN,
});
const bot = new UniversalBot(botConnector, <DIALOGS>);
export botConnector;
lambda.ts
import {botConnector} from './main';
import {AWSLambdaHandler} from 'botbuilder-wechat-connector';
export const handler = AWSLambdaHandler.handle(botConnector)