Official LoopBack 4 connector for sending SMS, placing text-to-speech calls and dispatching RCS messages via the seven gateway.
Supports the following seven REST API endpoints:
- LoopBack 4 project
- A seven account with API key (How to get your API key)
npm i @seven.io/loopback
# or
yarn add @seven.io/loopbackimport{inject,lifeCycleObserver,LifeCycleObserver}from'@loopback/core'import{juggler}from'@loopback/repository'import{SevenConnector}from'@seven.io/loopback'constconfig={apiKey: process.env.SEVEN_API_KEY,connector: SevenConnector,name: 'seven',}
@lifeCycleObserver('datasource')exportclassSevenDataSourceextendsjuggler.DataSourceimplementsLifeCycleObserver{staticdataSourceName='seven'staticreadonlydefaultConfig=configconstructor(
@inject('datasources.config.seven',{optional: true})dsConfig: object=config,){super('seven',dsConfig)}}import{Model,model,property}from'@loopback/repository'
@model()exportclassSevenMessageextendsModel{
@property({id: true,required: true,type: 'string'})operation: 'voice'|'sms'|'rcs'
@property({required: true,type: 'string'})to: string
@property({required: false,type: 'string'})from: string
@property({required: true,type: 'string'})text: stringconstructor(data?: Partial<SevenMessage>){super(data)}}import{injectable,BindingScope,Provider,inject}from'@loopback/core'import{GenericService,getService}from'@loopback/service-proxy'import{SevenDataSource}from'../datasources'import{SevenMessage}from'../models'exportinterfaceSevenextendsGenericService{send(data: SevenMessage): Promise<unknown>}
@injectable({scope: BindingScope.TRANSIENT})exportclassSevenProviderimplementsProvider<Seven>{constructor(
@inject('datasources.seven')protecteddataSource: SevenDataSource=newSevenDataSource(),){}value(): Promise<Seven>{returngetService(this.dataSource)}}constmsg=newSevenMessage({from: 'Acme',operation: 'sms',text: 'Hello from LoopBack',to: '+491234567890',})awaitsevenProvider.send(msg)Switch operation to voice for text-to-speech, or rcs for RCS messages.
| Operation | Fields |
|---|---|
sms | from?, text, to |
voice | from?, text (or XML), to |
rcs | from? (agent ID), text, to |
Need help? Feel free to contact us or open an issue.