mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-12-20 04:12:23 -06:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3e3a175bdc | ||
|
|
4a1aa9130b | ||
|
|
5a3f5f60b6 | ||
|
|
8c1600be55 | ||
|
|
7d3ae2347b | ||
|
|
27add47db4 | ||
|
|
836bcab036 | ||
|
|
2d20a07dfb | ||
|
|
24c5c70466 | ||
|
|
22ead22499 | ||
|
|
65e1620b43 | ||
|
|
956c391f13 |
@@ -1,3 +1,9 @@
|
|||||||
|
# 1.3.1 (2023-07-20 07:48)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
* Adjust in create store files
|
||||||
|
|
||||||
# 1.3.0 (2023-07-19 11:33)
|
# 1.3.0 (2023-07-19 11:33)
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|||||||
@@ -1,13 +1,16 @@
|
|||||||
SERVER_URL='http://localhost:8080' # http://localhost:3333 | http://localhost:3333/api/v1
|
# Server URL - Set your application url
|
||||||
|
SERVER_URL='http://localhost:8080'
|
||||||
|
|
||||||
CORS_ORIGIN='*' # Or separate by commas - ex.: 'yourdomain1.com, yourdomain2.com'
|
# Cors - * for all or set separate by commas - ex.: 'yourdomain1.com, yourdomain2.com'
|
||||||
|
CORS_ORIGIN='*'
|
||||||
CORS_METHODS='POST,GET,PUT,DELETE'
|
CORS_METHODS='POST,GET,PUT,DELETE'
|
||||||
CORS_CREDENTIALS=true
|
CORS_CREDENTIALS=true
|
||||||
|
|
||||||
# Determine the logs to be displayed
|
# Determine the logs to be displayed
|
||||||
LOG_LEVEL='ERROR,WARN,DEBUG,INFO,LOG,VERBOSE,DARK,WEBHOOKS'
|
LOG_LEVEL='ERROR,WARN,DEBUG,INFO,LOG,VERBOSE,DARK,WEBHOOKS'
|
||||||
LOG_COLOR=true
|
LOG_COLOR=true
|
||||||
LOG_BAILEYS=error # fatal | error | warn | info | debug | trace
|
# Log Baileys - "fatal" | "error" | "warn" | "info" | "debug" | "trace"
|
||||||
|
LOG_BAILEYS=error
|
||||||
|
|
||||||
# Determine how long the instance should be deleted from memory in case of no connection.
|
# Determine how long the instance should be deleted from memory in case of no connection.
|
||||||
# Default time: 5 minutes
|
# Default time: 5 minutes
|
||||||
@@ -20,7 +23,8 @@ STORE_MESSAGE_UP=true
|
|||||||
STORE_CONTACTS=true
|
STORE_CONTACTS=true
|
||||||
STORE_CHATS=true
|
STORE_CHATS=true
|
||||||
|
|
||||||
CLEAN_STORE_CLEANING_INTERVAL=7200 # seconds === 2h
|
# Set Store Interval in Seconds (7200 = 2h)
|
||||||
|
CLEAN_STORE_CLEANING_INTERVAL=7200
|
||||||
CLEAN_STORE_MESSAGES=true
|
CLEAN_STORE_MESSAGES=true
|
||||||
CLEAN_STORE_MESSAGE_UP=true
|
CLEAN_STORE_MESSAGE_UP=true
|
||||||
CLEAN_STORE_CONTACTS=true
|
CLEAN_STORE_CONTACTS=true
|
||||||
@@ -45,7 +49,7 @@ REDIS_PREFIX_KEY=evolution
|
|||||||
# Global Webhook Settings
|
# Global Webhook Settings
|
||||||
# Each instance's Webhook URL and events will be requested at the time it is created
|
# Each instance's Webhook URL and events will be requested at the time it is created
|
||||||
## Define a global webhook that will listen for enabled events from all instances
|
## Define a global webhook that will listen for enabled events from all instances
|
||||||
WEBHOOK_GLOBAL_URL='<url>'
|
WEBHOOK_GLOBAL_URL=''
|
||||||
WEBHOOK_GLOBAL_ENABLED=false
|
WEBHOOK_GLOBAL_ENABLED=false
|
||||||
# With this option activated, you work with a url per webhook event, respecting the global url and the name of each event
|
# With this option activated, you work with a url per webhook event, respecting the global url and the name of each event
|
||||||
WEBHOOK_GLOBAL_WEBHOOK_BY_EVENTS=false
|
WEBHOOK_GLOBAL_WEBHOOK_BY_EVENTS=false
|
||||||
@@ -74,7 +78,8 @@ WEBHOOK_EVENTS_NEW_JWT_TOKEN=false
|
|||||||
|
|
||||||
# Name that will be displayed on smartphone connection
|
# Name that will be displayed on smartphone connection
|
||||||
CONFIG_SESSION_PHONE_CLIENT='Evolution API'
|
CONFIG_SESSION_PHONE_CLIENT='Evolution API'
|
||||||
CONFIG_SESSION_PHONE_NAME=chrome # chrome | firefox | edge | opera | safari
|
# Browser Name = chrome | firefox | edge | opera | safari
|
||||||
|
CONFIG_SESSION_PHONE_NAME=chrome
|
||||||
|
|
||||||
# Set qrcode display limit
|
# Set qrcode display limit
|
||||||
QRCODE_LIMIT=30
|
QRCODE_LIMIT=30
|
||||||
@@ -82,20 +87,23 @@ QRCODE_LIMIT=30
|
|||||||
# Defines an authentication type for the api
|
# Defines an authentication type for the api
|
||||||
# We recommend using the apikey because it will allow you to use a custom token,
|
# We recommend using the apikey because it will allow you to use a custom token,
|
||||||
# if you use jwt, a random token will be generated and may be expired and you will have to generate a new token
|
# if you use jwt, a random token will be generated and may be expired and you will have to generate a new token
|
||||||
AUTHENTICATION_TYPE='apikey' # jwt or 'apikey'
|
# jwt or 'apikey'
|
||||||
|
AUTHENTICATION_TYPE='apikey'
|
||||||
## Define a global apikey to access all instances.
|
## Define a global apikey to access all instances.
|
||||||
### OBS: This key must be inserted in the request header to create an instance.
|
### OBS: This key must be inserted in the request header to create an instance.
|
||||||
AUTHENTICATION_API_KEY='B6D711FCDE4D4FD5936544120E713976'
|
AUTHENTICATION_API_KEY='B6D711FCDE4D4FD5936544120E713976'
|
||||||
AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES=true
|
AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES=true
|
||||||
## Set the secret key to encrypt and decrypt your token and its expiration time
|
## Set the secret key to encrypt and decrypt your token and its expiration time
|
||||||
AUTHENTICATION_JWT_EXPIRIN_IN=0 # seconds - 3600s ===1h | zero (0) - never expires
|
# seconds - 3600s ===1h | zero (0) - never expires
|
||||||
|
AUTHENTICATION_JWT_EXPIRIN_IN=0
|
||||||
AUTHENTICATION_JWT_SECRET='L0YWtjb2w554WFqPG'
|
AUTHENTICATION_JWT_SECRET='L0YWtjb2w554WFqPG'
|
||||||
# Set the instance name and webhook url to create an instance in init the application
|
# Set the instance name and webhook url to create an instance in init the application
|
||||||
# With this option activated, you work with a url per webhook event, respecting the local url and the name of each event
|
# With this option activated, you work with a url per webhook event, respecting the local url and the name of each event
|
||||||
AUTHENTICATION_INSTANCE_MODE=server # container or server
|
# container or server
|
||||||
|
AUTHENTICATION_INSTANCE_MODE=server
|
||||||
# if you are using container mode, set the container name and the webhook url to default instance
|
# if you are using container mode, set the container name and the webhook url to default instance
|
||||||
AUTHENTICATION_INSTANCE_NAME=evolution
|
AUTHENTICATION_INSTANCE_NAME=evolution
|
||||||
AUTHENTICATION_INSTANCE_WEBHOOK_URL='<url>'
|
AUTHENTICATION_INSTANCE_WEBHOOK_URL=''
|
||||||
AUTHENTICATION_INSTANCE_CHATWOOT_ACCOUNT_ID=1
|
AUTHENTICATION_INSTANCE_CHATWOOT_ACCOUNT_ID=1
|
||||||
AUTHENTICATION_INSTANCE_CHATWOOT_TOKEN=123456
|
AUTHENTICATION_INSTANCE_CHATWOOT_TOKEN=123456
|
||||||
AUTHENTICATION_INSTANCE_CHATWOOT_URL='<url>'
|
AUTHENTICATION_INSTANCE_CHATWOOT_URL=''
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "evolution-api",
|
"name": "evolution-api",
|
||||||
"version": "1.3.0",
|
"version": "1.3.1",
|
||||||
"description": "Rest api for communication with WhatsApp",
|
"description": "Rest api for communication with WhatsApp",
|
||||||
"main": "./dist/src/main.js",
|
"main": "./dist/src/main.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ export class RepositoryBroker {
|
|||||||
const messageUpDir = join(storePath, 'message-up');
|
const messageUpDir = join(storePath, 'message-up');
|
||||||
const webhookDir = join(storePath, 'webhook');
|
const webhookDir = join(storePath, 'webhook');
|
||||||
const chatwootDir = join(storePath, 'chatwoot');
|
const chatwootDir = join(storePath, 'chatwoot');
|
||||||
|
const tempDir = join(storePath, 'temp');
|
||||||
|
|
||||||
// Check if directories exist, create them if not
|
// Check if directories exist, create them if not
|
||||||
if (!fs.existsSync(authDir)) {
|
if (!fs.existsSync(authDir)) {
|
||||||
@@ -83,6 +84,10 @@ export class RepositoryBroker {
|
|||||||
this.logger.verbose('creating chatwoot dir: ' + chatwootDir);
|
this.logger.verbose('creating chatwoot dir: ' + chatwootDir);
|
||||||
fs.mkdirSync(chatwootDir, { recursive: true });
|
fs.mkdirSync(chatwootDir, { recursive: true });
|
||||||
}
|
}
|
||||||
|
if (!fs.existsSync(tempDir)) {
|
||||||
|
this.logger.verbose('creating temp dir: ' + tempDir);
|
||||||
|
fs.mkdirSync(tempDir, { recursive: true });
|
||||||
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.logger.error(error);
|
this.logger.error(error);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -116,16 +116,16 @@ export async function initInstance() {
|
|||||||
configService.get<Auth>('AUTHENTICATION').INSTANCE.WEBHOOK_URL;
|
configService.get<Auth>('AUTHENTICATION').INSTANCE.WEBHOOK_URL;
|
||||||
logger.verbose('Instance webhook: ' + instanceWebhook);
|
logger.verbose('Instance webhook: ' + instanceWebhook);
|
||||||
|
|
||||||
const chatwootAccountId =
|
// const chatwootAccountId =
|
||||||
configService.get<Auth>('AUTHENTICATION').INSTANCE.CHATWOOT_ACCOUNT_ID;
|
// configService.get<Auth>('AUTHENTICATION').INSTANCE.CHATWOOT_ACCOUNT_ID;
|
||||||
logger.verbose('Chatwoot account id: ' + chatwootAccountId);
|
// logger.verbose('Chatwoot account id: ' + chatwootAccountId);
|
||||||
|
|
||||||
const chatwootToken =
|
// const chatwootToken =
|
||||||
configService.get<Auth>('AUTHENTICATION').INSTANCE.CHATWOOT_TOKEN;
|
// configService.get<Auth>('AUTHENTICATION').INSTANCE.CHATWOOT_TOKEN;
|
||||||
logger.verbose('Chatwoot token: ' + chatwootToken);
|
// logger.verbose('Chatwoot token: ' + chatwootToken);
|
||||||
|
|
||||||
const chatwootUrl = configService.get<Auth>('AUTHENTICATION').INSTANCE.CHATWOOT_URL;
|
// const chatwootUrl = configService.get<Auth>('AUTHENTICATION').INSTANCE.CHATWOOT_URL;
|
||||||
logger.verbose('Chatwoot url: ' + chatwootUrl);
|
// logger.verbose('Chatwoot url: ' + chatwootUrl);
|
||||||
|
|
||||||
instance.instanceName = instanceName;
|
instance.instanceName = instanceName;
|
||||||
|
|
||||||
@@ -148,21 +148,21 @@ export async function initInstance() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (chatwootUrl && chatwootToken && chatwootAccountId) {
|
// if (chatwootUrl && chatwootToken && chatwootAccountId) {
|
||||||
logger.verbose('Creating chatwoot for instance: ' + instanceName);
|
// logger.verbose('Creating chatwoot for instance: ' + instanceName);
|
||||||
try {
|
// try {
|
||||||
chatwootService.create(instance, {
|
// chatwootService.create(instance, {
|
||||||
enabled: true,
|
// enabled: true,
|
||||||
url: chatwootUrl,
|
// url: chatwootUrl,
|
||||||
token: chatwootToken,
|
// token: chatwootToken,
|
||||||
account_id: chatwootAccountId,
|
// account_id: chatwootAccountId,
|
||||||
sign_msg: false,
|
// sign_msg: false,
|
||||||
});
|
// });
|
||||||
logger.verbose('Chatwoot created');
|
// logger.verbose('Chatwoot created');
|
||||||
} catch (error) {
|
// } catch (error) {
|
||||||
logger.log(error);
|
// logger.log(error);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const state = instance.connectionStatus?.state;
|
const state = instance.connectionStatus?.state;
|
||||||
|
|||||||
Reference in New Issue
Block a user