new(security.gblib): SMS Auth.
This commit is contained in:
parent
27cdb25322
commit
6112ce9a1c
4 changed files with 853 additions and 832 deletions
|
@ -135,7 +135,6 @@
|
||||||
"ffmpeg-static": "5.1.0",
|
"ffmpeg-static": "5.1.0",
|
||||||
"google-libphonenumber": "3.2.31",
|
"google-libphonenumber": "3.2.31",
|
||||||
"googleapis": "126.0.1",
|
"googleapis": "126.0.1",
|
||||||
|
|
||||||
"ibm-watson": "7.1.2",
|
"ibm-watson": "7.1.2",
|
||||||
"iso-639-1": "3.1.1",
|
"iso-639-1": "3.1.1",
|
||||||
"join-images-updated": "1.1.4",
|
"join-images-updated": "1.1.4",
|
||||||
|
|
|
@ -49,7 +49,7 @@ import { GuaribasUser } from '../../security.gbapp/models/index.js';
|
||||||
import { GBMinService } from './GBMinService.js';
|
import { GBMinService } from './GBMinService.js';
|
||||||
import urlJoin from 'url-join';
|
import urlJoin from 'url-join';
|
||||||
import Fs from 'fs';
|
import Fs from 'fs';
|
||||||
import PasswordGenerator from 'strict-password-generator';
|
import twilio from 'twilio';
|
||||||
import Nexmo from 'nexmo';
|
import Nexmo from 'nexmo';
|
||||||
import { join } from 'path';
|
import { join } from 'path';
|
||||||
import shell from 'any-shell-escape';
|
import shell from 'any-shell-escape';
|
||||||
|
@ -62,6 +62,7 @@ import { IamAuthenticator } from 'ibm-watson/auth/index.js';
|
||||||
import * as marked from 'marked';
|
import * as marked from 'marked';
|
||||||
import Translate from '@google-cloud/translate';
|
import Translate from '@google-cloud/translate';
|
||||||
import { GBUtil } from '../../../src/util.js';
|
import { GBUtil } from '../../../src/util.js';
|
||||||
|
import { GBLogEx } from './GBLogEx.js';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides basic services for handling messages and dispatching to back-end
|
* Provides basic services for handling messages and dispatching to back-end
|
||||||
|
@ -354,6 +355,25 @@ export class GBConversationalService {
|
||||||
// tslint:disable:no-unsafe-any due to Nexmo.
|
// tslint:disable:no-unsafe-any due to Nexmo.
|
||||||
public async sendSms(min: GBMinInstance, mobile: string, text: string): Promise<any> {
|
public async sendSms(min: GBMinInstance, mobile: string, text: string): Promise<any> {
|
||||||
GBLog.info(`Sending SMS to ${mobile} with text: '${text}'.`);
|
GBLog.info(`Sending SMS to ${mobile} with text: '${text}'.`);
|
||||||
|
const accountSid = process.env.TWILIO_ACCOUNT_SID;
|
||||||
|
const authToken = process.env.TWILIO_AUTH_TOKEN;
|
||||||
|
const client = twilio(null, authToken, { accountSid: accountSid });
|
||||||
|
|
||||||
|
let botNumber = min.core.getParam<string>(min.instance, 'Bot Number', null);
|
||||||
|
if (!botNumber) {
|
||||||
|
botNumber = process.env.BOT_NUMBER;
|
||||||
|
}
|
||||||
|
|
||||||
|
const msg = await client.messages
|
||||||
|
.create({
|
||||||
|
body: text,
|
||||||
|
from: '+' + botNumber,
|
||||||
|
to: '+' + mobile
|
||||||
|
})
|
||||||
|
|
||||||
|
GBLogEx.info(min, `SMS sent, return: ${msg.sid}.`);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
|
||||||
if(!min.instance.smsKey && min.instance.smsSecret) {
|
if(!min.instance.smsKey && min.instance.smsSecret) {
|
||||||
const url = 'http://sms-api.megaconecta.com.br/mt';
|
const url = 'http://sms-api.megaconecta.com.br/mt';
|
||||||
|
|
|
@ -74,6 +74,8 @@ export class SMSAuthDialog extends IGBDialog {
|
||||||
mobile,
|
mobile,
|
||||||
Messages[locale].please_use_code(code)
|
Messages[locale].please_use_code(code)
|
||||||
);
|
);
|
||||||
|
await min.conversationalService.sendSms(min, mobile, Messages[locale].please_use_code(code));
|
||||||
|
|
||||||
return await min.conversationalService.prompt(min, step, Messages[locale].confirm_mobile);
|
return await min.conversationalService.prompt(min, step, Messages[locale].confirm_mobile);
|
||||||
},
|
},
|
||||||
async (step) => {
|
async (step) => {
|
||||||
|
|
|
@ -53,7 +53,7 @@ import e from 'express';
|
||||||
import { GBUtil } from '../../../src/util.js';
|
import { GBUtil } from '../../../src/util.js';
|
||||||
const { WAState, List, Buttons, Client, MessageMedia } = pkg;
|
const { WAState, List, Buttons, Client, MessageMedia } = pkg;
|
||||||
import twilio from 'twilio';
|
import twilio from 'twilio';
|
||||||
const { MessagingResponse } = twilio.twiml;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Support for Whatsapp.
|
* Support for Whatsapp.
|
||||||
|
|
Loading…
Add table
Reference in a new issue