@it-incubator/telegram-bot-client
v0.1.3
Published
- добавить в корень проекта файл <b>.npmrc</b> c содержимым: >@it-incubator:registry=https://npm.pkg.github.com
Downloads
2
Readme
INSTRUCTION:
##Чтобы установить пакет в проекте:
- добавить в корень проекта файл .npmrc c содержимым:
@it-incubator:registry=https://npm.pkg.github.com
- npm install @it-incubator/telegram-bot-client
- изменить docker file (связаться с Артемом)
for nestJS
module.ts:
import { BotService } from 'telegram-bot-client'
...
providers: [{
provide: BotService.name,
useFactory: () =>
new BotService({
baseUrl: 'URL',
friendsToken: 1234,
}),
}],
...
service.ts:
import { BotService } from 'telegram-bot-client'
...
constructor(
@Inject(BotService.name)
private readonly botHttpService: BotService
) {}
...
//this.botHttpService.sendMessage(Array<BodyType>)
const res = await this.botHttpService.sendMessage([
{
message: 'hello world =)',
messengerUserId: 123456,
autoRemoveAfterSeconds: 60,
bodyType: 2,
},
]);
...
types:
type BodyType = {
message: string,
messengerUserId: number
autoRemoveAfterSeconds: number,
bodyType: MessageBodyTypes,
}
export enum MessageBodyTypes {
PlainText = 0,
MarkUp2 = 1,
Html = 2
}
for express.js
import { BotService} from 'telegram-bot-client'
const botService = new BotService({baseUrl:' ', friendsToken: ' '})
botService.sendMessage(body)
Example (nestJS):
module.ts:
import { BotService } from 'telegram-bot-client';
@Module({
providers: [
TelegramService,
{
provide: BotService.name,
useFactory: () =>
new BotService({
baseUrl: 'https://st-students-bot-api.herokuapp.com',
friendsToken: '123',
}),
},
],
})
export class TelegramModule {}
service.ts:
import { BotService } from 'telegram-bot-client';
@Injectable()
export class TelegramService {
constructor(
@Inject(BotService.name)
private readonly botHttpService: BotService
) {}
async sendMessage(){
return this.botHttpService.sendMessage([
{
message: 'hello world =)',
messengerUserId: 123456,
autoRemoveAfterSeconds: 60,
bodyType: 2,
},
]);
}
}
Ниже флоу создания этого проекта:
Глобальный eslint (не обязательно)
- npm install -g incubator-cli (глобально)
- incubator install linters (в папке проекта)
- и в самом проекте потом после запуска ставим автоподгрузку eslint & prettier
создание ПАКЕТа
- npx tsdx create ИМЯ
Далее нужные пакеты для пакета. В нашем пакете понадобилась библиотека axios
- npm i axios
- Создаем файл index.ts, пишем code
- yarn build (npm-команда) - собрать и сделать автопаблиш
- yarn start (npm-команда) - собирает и сделает автопаблиш каждый раз как что-то в проекте поменяется
- команда в консоли yarn link - создаем локально link к этому пакету для дальнейшего использования этого пакета в другом проекте
мы используем команду yarn link чтобы собрать локально пакет и к нему в другом приложении можно было обратиться через yarn link ИМЯ
Документация на библ которая помогла создать этот пакет здесь
Использование пакета в приложении CONSUMER:
- (не обязательно) incubator install linters (в папке проекта с закрытым проектом для того, чтобы подключить еслинт + настройки)
(для node приложения)
(чтобы пользоваться link) yarn add -g ts-node
(чтобы пользоваться link - типы - для TS) yarn add @types/node --save-dev
(для ts-проектов) yarn add typescript
yarn link ИМЯ - локально подклуючаем пакет
команда в консоли ts-node index.ts - ЗАПУСКАЕМ с нашим пакетом приложение
Документация на библ ts-node