O moorse sdk surge como solução ao problema que muitos desenvolvedores enfrentam de necessitar criar suas próprias requisições http à API da Moorse, com ele, torna-se possível enviar requests à nossa API de forma simplificada, sem a necessidade de configurar todos os requests do início ao fim.
- Início rápido
- Objeto moorse
- Métodos síncronos
- Métodos assíncronos
Antes de tudo, inicie um projeto nodejs em typescript e instale o pacote da moorse nele utilizando o npm:
npm i moorseio
Caso esteja usando typescript, inclua o pacote da moorse no seu código, crie o objeto moorse e chame o método sendText para enviar uma mensagem
import { Moorse } from "moorseio";
const moorse: Moorse = new Moorse({
channelType: "whatsapp",
integrationId: "some-moorse-integration-id",
email: "sample.email@gmail.com",
password: "strongpass123"
});
moorse.sendText({
to: "5583996843637",
body: "wow, it's a moorse message!"
}).then((answer)=>{
console.log(answer);
});
Ao executar este trecho de código, o sdk usará seu email e senha para resgatar seu token da moorse e enviar uma mensagem ao número te telefone passado no método sendText().
O objeto Moorse é a parte central do SDK, nele estão guardados todas os métodos que futuramente servirão para consumir alguma rota da Moorse.
A criação se dá como a de qualquer outro objeto, cria-se uma instância chamando o construtor e passando todos os atributos necessários.
import { Moorse } from "moorseio";
const moorse: Moorse = new Moorse({
channelType: "whatsapp",
email: "seuemail@gmail.com",
password: "senhaforte123"
});
Para o construtor da moorse usa-se apenas um objeto chamado de MoorseObject nele, podem/devem ser definidos os seguintes atributos:
atributo | tipo | obrigatório? | descrição |
---|---|---|---|
channelType | string | sim | tipo de canal de comunicação desejado (apenas whatsapp é suportado atualmente) |
integrationId | string | não | id de uma integração sua da moorse |
string | não | email do usuário cadastrado no site da moorse | |
password | string | não | senha do usuário cadastrado no site da moorse |
token | string | não | token do usuário cadastrado no site da moorse (pode ser encontrado no dashboard do site) |
onLogin | função | não | uma função que é executada quando usuário da moorse for logado (isso só acontece caso seja passado apenas email e senha e não o token no MoorseObject ) |
Definição:
getToken(): string
Exemplo:
moorse.getToken();
Retorno: string
Definição:
setToken(token: string): void
Exemplo:
moorse.setToken("novo-token-desejado");
Retorno: void
Definição:
getIntegrationId(): string
Exemplo:
moorse.getIntegrationId();
Retorno: string
Definição:
setIntegrationId(integrationId: string): void
Exemplo:
moorse.setTokenIntegrationId("novo-integrationid-desejado");
Retorno: void
Definição:
login(email: string, password: string): Promise<MoorseResponse>
Exemplo:
moorse.login("exemplo@mail.com", "senhaforte").then((data: any)=>{
console.log(data);
});
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
sendText(args: SendTextObject): Promise<MoorseResponse>
SendTextObject
type SendTextObject ={
to: string;
body: string;
integrationId?: string;
}
Exemplo:
moorse.sendText({
to: "655645198411"
body: "olá"
});
moorse.sendText({
to: "655645198411"
body: "olá",
integrationId: "54198498-498-4984984-984"
});
Retorno:
{
data: any
errors: any
links: any
}
Definição:
sendFile(args: SendFileObject): Promise<MoorseResponse>
SendFileObject
type SendFileObject = {
to: string;
body: string;
filename: string;
caption: string;
integrationId?: string;
};
Exemplo:
moorse.sendFile({
to: "6485456184",
body: base64EncodedImage,
filename: "gatinho.png"
caption: "olha essa foto!"
});
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
sendButtons(args: SendButtonsObject): Promise<MoorseResponse>
SendButtonsObject
type SendButtonsObject = {
buttons: string[],
title: string,
subtitle: string,
to: string
integrationId?: string;
}
Exemplo:
moorse.sendButtons({
buttons: ["a", "b", "c"],
title: "titulo do botão",
subtitle: "subtitulo do botão",
to: "54954196852",
integrationId: "6548541-854-84984"
});
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
sendListMenu(args: SendListMenuObject): Promise<MoorseResponse>
SendListMenuObject
type SendListMenuObject = {
integrationId?: string,
to: string,
body: string,
action: {
sections: {
title: string,
rows: {
id: string;
title: string;
}[],
}[],
}
};
Exemplo:
moorse.sendListMenu({
to: "5511999999999",
body: "Olá 🙂\nQue bom que você chegou!\n\nAqui no Zap Americanas temos ofertas incríveis e personalizadas pra você ❤️",
action: {
sections: [
{
title: "OFERTA",
rows: [
{
id: "MEUS_CUPONS",
title: "Meus cupons"
},
{
id: "PRODUTOS_ALTA",
title: "Produtos em alta"
}
]
},
{
title: "OUTROS",
rows: [
{
id: "SUA_OPNIAO",
title: "Dê sua opnião"
},
{
id: "FALAR_PESSOA",
title: "Falar com uma pessoa"
}
]
}
]
}
});
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
sendImage(args: SendImageObject): Promise<MoorseResponse>
SendImageObject
type SendImageObject = {
to: string;
body: string;
filename: string;
caption: string;
integrationId?: string;
};
Exemplo:
moorse.sendImage({
to: "6168546518",
body: base64EncodedAudio,
filename: "imagem.jpg",
caption: "teste",
});
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
sendVideo(args: SendVideoObject): Promise<MoorseResponse>
SendVideoObject
type SendVideoObject = {
to: string;
body: string;
filename: string;
caption: string;
integrationId?: string;
};
Exemplo:
moorse.sendVideo({
to: "6168546518",
body: base64EncodedVideo,
filename: "video.mp4",
caption: "teste",
});
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
sendVoice(args: SendVoiceObject): Promise<MoorseResponse>
SendVoiceObject
type SendVoiceObject = {
to: string;
body: string;
filename: string;
caption: string;
integrationId?: string;
};
Exemplo:
moorse.sendVoice({
to: "6168546518",
body: base64EncodedVoice,
filename: "voice.mp3",
caption: "teste",
});
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
sendAudio(args: SendAudioObject): Promise<MoorseResponse>
SendAudioObject
type SendAudioObject = {
to: string;
body: string;
filename: string;
caption: string;
integrationId?: string;
};
Exemplo:
moorse.sendAudio({
to: "6168546518",
body: base64EncodedAudio,
filename: "audio.mp3",
caption: "teste",
});
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
getCredits(argsIntegrationId?: string):Promise<MoorseResponse>
Exemplo:
moorse.getCredits();
moorse.getCredits("16541659814-87451984-56165496");
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
getIntegrationStatus(argsIntegrationId: string): Promise<MoorseResponse>
Exemplo:
moorse.getIntegrationStatus();
moorse.getIntegrationStatus("16541659814-87451984-56165496");
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
getWebhookById(webhookId: string): Promise<MoorseResponse>
Exemplo:
moorse.getWebhookById("webhook-id");
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
createWebhook(args: MoorseWebhookConfig): Promise<MoorseResponse>
MoorseWebhookConfig
type MoorseWebhookConfig = {
name: string,
url: string,
method: string,
active: boolean,
integrations?: string[],
headers?: {
key: string,
value: string
}[],
answered: boolean,
readed: boolean,
received: boolean,
sended: boolean,
retries: number,
timeout: number
}
Exemplo:
moorse.createWebhook({
name: "webhook teste",
url: "www.moorse.com",
method: "POST",
active: true,
answered: false,
readed: false,
received: true,
sended: false,
retries: 2,
timeout: 30
});
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
deleteWebhook(webhookId: string): Promise<MoorseResponse>
Exemplo:
moorse.deleteWebhook("webhook-id");
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
updateWebhook(webhookId: string, args: MoorseWebhookConfig): Promise<MoorseResponse>
MoorseWebhookConfig
type MoorseWebhookConfig = {
name: string,
url: string,
method: string,
active: boolean,
integrations?: string[],
headers?: {
key: string,
value: string
}[],
answered: boolean,
readed: boolean,
received: boolean,
sended: boolean,
retries: number,
timeout: number
}
Exemplo:
moorse.update("webhook-id",{
name: "webhook teste",
url: "www.moorse.com",
method: "POST",
active: true,
answered: false,
readed: false,
received: true,
sended: false,
retries: 2,
timeout: 30
});
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
createTemplate(args: CreateTemplate): Promise<MoorseResponse>
CreateTemplate
type CreateTemplate = {
name: string,
description?: string,
type: string,
integrationId: string,
category: string,
language: string,
components: {
type: string,
text?: string,
format?: string,
example?: any,
buttons?: string[]
}[]
}
Exemplo:
moorse.createTemplate({
name: "template teste",
type: "STANDARD",
integrationId: "id-da-integração"
category: "ACCOUNT_UPDATE",
language: "pt_BR",
components: [
{
type: "BODY",
text: "teste"
}
]
});
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
getTemplates(args?: GetTemplatesQueryParams): Promise<MoorseResponse>
GetTemplatesQueryParams
type GetTemplatesQueryParams = {
category?: string,
clientId?: string,
integrationId?: string,
name?: string,
status?: string,
type?: string
}
Exemplo:
moorse.getTemplates();
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
getTemplateById(templateId: string): Promise<MoorseResponse>
Exemplo:
moorse.getTemplateById("id-do-template");
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
deleteTemplateById(templateId: string): Promise<MoorseResponse>
Exemplo:
moorse.deleteTemplateById("id-do-template");
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
totalMessages(args: TotalMessagesObject): Promise<MoorseResponse>
TotalMessagesObject
type TotalMessagesObject = {
beginDate: string;
endDate: string;
};
Exemplo:
moorse.totalMessages({
beginDate: "2021-06-01",
endDate: "2021-07-01"
});
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
totalMessagesPerChannel(args: TotalMessagesPerChannelObject): Promise<MoorseResponse>
TotalMessagesPerChannelObject
type TotalMessagesPerChannelObject = {
beginDate: string;
endDate: string;
};
Exemplo:
moorse.totalMessagesPerChannel({
beginDate: "2021-06-01",
endDate: "2021-07-01"
});
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
totalMessagesTimeline(args: TotalMessagesTimelineObject): Promise<MoorseResponse>
TotalMessagesTimelineObject
type TotalMessagesTimelineObject = {
beginDate: string;
endDate: string;
};
Exemplo:
moorse.totalMessagesTimeline({
beginDate: "2021-06-01",
endDate: "2021-07-01"
});
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
sendSms(args: SendTextObject): Promise<MoorseResponse>
SendTextObject
type SendTextObject ={
to: string;
body: string;
integrationId?: string;
}
Exemplo:
moorse.sendSms({
to: "16985498456",
body: "olá"
});
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
createGroup(args: CreateGroupObject):Promise<MoorseResponse>
CreateGroupObject
type CreateGroupObject = {
name: string,
description?: string,
integrationId: string,
contacts: string[]
}
Exemplo:
await moorse.createGroup({
contacts: ["5583996833634"],
integrationId: "d18f348b-381d-42b6-8fa8-960bc96786c0",
name: "grupo de teste",
description: "descricao de teste"
});
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
deleteGroup(groupId: string):Promise<MoorseResponse>
Exemplo:
moorse.deleteGroup("aeb7bcfe-635e-4b3a-9093-b9355fa75");
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
updateGroup(groupId: string, args: UpdateGroupObject):Promise<MoorseResponse>
UpdateGroupObject
type UpdateGroupObject = {
name: string,
description: string,
}
Exemplo:
moorse.updateGroup("aeb7bcfe-635e-4b3a-9093-b9355fa75",{
name: "nome atualizado",
description: "descrição atualizada"
});
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
sendTextOnGroup(args: SendTextOnGroupObject):Promise<MoorseResponse>
SendTextOnGroupObject
type SendTextOnGroupObject = {
groupId: string,
body: string
}
Exemplo:
moorse.sendTextOnGroup({
groupId: "aeb7bcfe-635e-4b3a-9093-b9355fa75",
body: "mensagem de teste"
});
Objeto do retorno:
{
data: any
errors: any
links: any
}
Definição:
sendFileOnGroup(args: SendFileOnGroupObject):Promise<MoorseResponse>
SendFileOnGroupObject
type SendFileOnGroupObject = {
groupId: string,
body: string,
filename: string,
caption: string
}
Exemplo:
moorse.sendFileOnGroup({
groupId: "aeb7bafe-625e-4b3a-9093-b9355739fa75",
filename: "arquivoTeste.pdf",
body: "arquivo corrompido",
caption: "legenda do arquivo"
})
Objeto do retorno:
{
data: any
errors: any
links: any
}