whatsapp / whatsapp-business-api-setup-scripts Goto Github PK
View Code? Open in Web Editor NEWThe scripts related to setting up WhatsApp business API
License: MIT License
The scripts related to setting up WhatsApp business API
License: MIT License
We use istio that terminates SSL for us. I see that there is a disable_ssl()
function, but no way for it to be called.
It would be great if you could please add an env var that will determine if SSL is enabled or not in the webapp.
Until this is done, I'm going to have to probably create our own container or a more complex command to call this function and restart the webserver in order to have this working.
Unable to pull images from outside EU/US
root@bearn:~# docker pull docker.whatsapp.biz/coreapp:v2.27.9
v2.27.9: Pulling from coreapp
fe703b657a32: Pulling fs layer
f9df1fafd224: Pulling fs layer
a645a4b887f9: Pulling fs layer
57db7fe0b522: Waiting
6b2eb8ccc98d: Waiting
9cf68babd01f: Waiting
4dc1ba623584: Waiting
90a8d2ecb28d: Waiting
a7eb49866f8b: Waiting
783ab5575e2d: Waiting
976147b0c3f6: Waiting
e053676657f8: Waiting
01c8f62993f7: Waiting
error pulling image configuration: error parsing HTTP 403 response body: invalid character 'F' looking for beginning of value: "Forbidden!"
Hi!
I should deploy many different WhatsApp API instances behind a reverse proxy, using different paths to route the traffic.
Every instance is a different host with a docker-compose stack.
So, for example:
my.domain.example/client-1 ---> instance-1
my.domain.example/client-2 ---> instance-2
I try to do this setup, but I get this error:
app.ERROR: [b278a05bed9347d9b0295ebaf9da6e75] Symfony\Component\HttpKernel\Exception\NotFoundHttpException: No route found for "GET /client-1" (uncaught exception) at /var/www/html/vendor/symfony/http-kernel/EventListener/RouterListener.php line 2 {"exception":"[object] (Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException(code: 0): No route found for \"GET /client-1\" at /var/www/html/vendor/symfony/http-kernel/EventListener/RouterListener.php:2, Symfony\\Component\\Routing\\Exception\\ResourceNotFoundException(code: 0): No routes found for \"/client-1\". at /var/www/html/vendor/symfony/routing/Matcher/UrlMatcher.php:2)"} []
Can you help me?
Hello guys,
I've got some questions abous those yamls.
Thank you,
Good night people! I am now starting to send with the WhatsApp Business API and I am receiving this error ERR_CERT_AUTHORITY_INVALID, it seems to me that the SSL generated inside the docker is not valid, has anyone been through this?
Im deploying the Master with a connection to a PostgreSQL V10.12, when I check the logs there are several errors.
Main messages in the log:
The server version of this PostgreSQL is unknown, falling back to the client version
Failed to initialize cluster manager, will retry after 1000 ms
logs-from-whatsapp-master-in-whatsapp-master-deployment-64cfbc8676-spt7x.txt
This is my configuration for the deployment
db.env:
wa-db-engine=PGSQL
wa-db-hostname=dbhost
wa-db-port=31810
wa-db-username=admin
wa-db-password=*****
wa-db-connection-idle-timeout=180
wa-db-connection-option=sslrootcert=/usr/local/wamedia/cert/6be25d73-0600-11ea-9bce-eaebe975ceba.crt;dbname=db;sslmode=verify-full
Image Version
docker.whatsapp.biz/coreapp:v2.27.12
When I check in my DB the version I get these results:
psql -> SELECT version();
"PostgreSQL 10.12 on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit"
psql -> SHOW server_version;
"10.12"
In the dbhost I see some objects created like the databases configStore and clusterStore, but there are no tables in them.
Pleace add support monitoring in kubernets
I followed the installation instructions from https://developers.facebook.com/docs/whatsapp/installation/dev-single-instance for Developer Setup: Single Instance, and i have everything up and running but going to http:MY_URL:9090 from my browser, I get an "Unable to connect page"
Is there anything I am doing wrong?
Hi everyone,
My OS Version/build : Windows 10 Home Single Language 64-bit (10.0, Build 19042) (19041.vb_release.191206-1406)
Docker systeinfo : https://paste.ubuntu.com/p/W5Nv3DCHms/
Developer Setup: Single Instance ( https://developers.facebook.com/docs/whatsapp/installation/dev-single-instance )
Steps 1 to 5 okay , no problem.
https://127.0.0.1:9090/ "clock wrong"
Screenshot : https://i.ibb.co/kgJkx5f/clock-wrong.png
how do i solve the problem?
Hi,
I found the following issue on a fresh kubernetes deployement:
After install an try to set up Registration Code, when we log in application send us "http error 500" and 'undefined' in login screen... After check logs we found these message
==> /var/log/whatsapp/web.log <==
[2020-04-21 01:45:09.645161] app.INFO: [5f6286286a51415b91aa82798a39eed6] Matched route "{route}". {"route":"GET_v1_health","route_parameters":{"_controller":"WhatsApp\Controller\HealthController::getHealth","_route":"GET_v1_health"},"request_uri":"https://200.60.145.96:8443/v1/health","method":"GET"} []
[2020-04-21 01:45:09.647388] app.CRITICAL: [5f6286286a51415b91aa82798a39eed6] Exception: Fail to read /var/lib/whatsapp/database.yml (uncaught exception) at /var/www/html/index.php line 2 {"exception":"[object] (Exception(code: 0): Fail to read /var/lib/whatsapp/database.yml at /var/www/html/index.php:2)"} []
[2020-04-21 01:45:09.651387] app.INFO: [5f6286286a51415b91aa82798a39eed6] Response: {"meta":{"version":"v2.27.12","api_status":"stable"},"errors":[{"code":1014,"title":"Internal error"}]} []
==> /var/log/lighttpd/error.log <==
2020-04-21 01:45:09: (mod_fastcgi.c.2702) FastCGI-stderr: PHP message: PHP Warning: file_get_contents(/var/lib/whatsapp/database.yml): failed to open stream: Permission denied in /var/www/html/src/WhatsApp/Database/DBUtil.php on line 2
After we set "777" permission to the file by container cli (we don't know if those are the correct), web admin show us the change password page and application works!
Hello,
We got the following error while pulling the image:
#docker pull docker.whatsapp.biz/coreapp:v2.27.12
Trying to pull repository docker.whatsapp.biz/coreapp ...
sha256:947a1dfa3f03a282eff72f5293baa27cbdedfef6710671718b341984d5fdbac5: Pulling from docker.whatsapp.biz/coreapp
fe703b657a32: Pulling fs layer
f9df1fafd224: Downloading
a645a4b887f9: Downloading
57db7fe0b522: Waiting
0bb08bbcf873: Waiting
68e4fdb6d9f7: Waiting
a50219c293ee: Waiting
433d74e3d027: Waiting
21627e42fd2d: Waiting
9762562558a3: Waiting
299376325342: Waiting
d7cdc502f699: Waiting
0b8b567114cc: Waiting
error pulling image configuration: error parsing HTTP 403 response body: invalid character 'F' looking for beginning of value: "Forbidden!"
Basically the same error as #23
We are in France.
On https://developers.facebook.com/docs/whatsapp/changelog
I still see
Ability to close idle MYSQL DB connections using WA_DB_CONNECTION_IDLE_TIMEOUT (in seconds)
On https://developers.facebook.com/docs/whatsapp/guides/mysql
WA_DB_CONNECTION_IDLE_TIMEOUT — By setting this environment variable (in milliseconds) while starting the Coreapp, you can set the idle timeout for your MySQL database. The MySQL server will then close any database connections that are idle for the time set.
Meanwhile, in docker-compose config you have value 180000
https://github.com/WhatsApp/WhatsApp-Business-API-Setup-Scripts/blob/master/installation/db.env#L11
Dear Whatsapp team,
Could you add 179.60.192.48/32 and 157.240.21.51/32 to your "List of the WhatsApp server IP addresses and ranges (ZIP)" that you provide here : https://developers.facebook.com/docs/whatsapp/network-debugging.
I can spot these IPs which seem to be VOIP gateways or proxies when doing calls (UDP 3478).
Thank you.
Hi,
I'm trying to install the latest version 2.27.12 on minikube but at I receive the error below caused by the bad indentation at line 125 - name: COREAPP_HOSTNAME
E:\Kubernetes\wa\installation\kubernetes>kubectl apply -f coreapp.yaml
error: error parsing coreapp.yaml: error converting YAML to JSON: yaml: line 78: did not find expected key
Hi,
I am unable to view any options once I have added my WhatsApp Business Account to Facebook Business Manager. According to the Documentation (https://developers.facebook.com/docs/whatsapp/api/account#certificate) there should be options to open a "WhatsApp Manager" menu or "View Certificate" or even check "Account Status" but I am unable to view any of them. There are no clickable options once I add my number.
This means I am unable to view the base64-encoded certificate which is necessary for the next steps of setting up the WhatsApp Business API. I have attached a screenshot of my screen once adding my number.
Please do let me know if there are any fixes for this.
Thanks.
Hi everyone, I got following error on docker-compose up -d:
ERROR: error pulling image configuration: error parsing HTTP 403 response body: invalid character 'F' looking for beginning of value: "Forbidden!"
Anybody has same issue with me?
Hello, WhatsApp team. I am trying to follow the instructions described in the Stats and Metrics documentation to enable API key access to the waweb
. I am running in K8s and have configured the env variable as described in the instructions. When I attempt to send a request using the API and the headers:
Authorization: Apikey {{AdminAuthToken}}
Where {{AdminAuthToken}}
is a 50 randomly generated characters string.
The following error is returned by the API.
{
"meta": {
"version": "v2.27.12",
"api_status": "stable"
},
"errors": [
{
"code": 1005,
"title": "Access denied",
"details": "User doesn't have permission"
}
]
}
And the following logs appear in the waweb
container.
[2020-08-29 00:36:07.456919] app.INFO: [91395b070cc98617a96be6f01dfe6902] Matched route "{route}". {"route":"GET_metrics","route_parameters":{"_controller":"WhatsApp\\Controller\\MetricsController::getMetrics","_route":"GET_metrics"},"request_uri":"https://hidden.com/metrics","method":"GET"} []
[2020-08-29 00:36:07.457592] app.INFO: [91395b070cc98617a96be6f01dfe6902] Guard authentication successful! {"token":"[object] (Symfony\\Component\\Security\\Guard\\Token\\PostAuthenticationGuardToken: PostAuthenticationGuardToken(user=\"_apiuser\", authenticated=true, roles=\"ROLE_API\"))","authenticator":"WhatsApp\\Security\\ApiKeyAuthenticator"} []
[2020-08-29 00:36:07.457802] app.ERROR: [91395b070cc98617a96be6f01dfe6902] Invalid authentication token format [] []
[2020-08-29 00:36:07.458130] app.ERROR: [91395b070cc98617a96be6f01dfe6902] Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException: Access Denied. (uncaught exception) at /var/www/html/vendor/symfony/security/Http/Firewall/ExceptionListener.php line 2 {"exception":"[object] (Symfony\\Component\\HttpKernel\\Exception\\AccessDeniedHttpException(code: 0): Access Denied. at /var/www/html/vendor/symfony/security/Http/Firewall/ExceptionListener.php:2, Symfony\\Component\\Security\\Core\\Exception\\AccessDeniedException(code: 403): Access Denied. at /var/www/html/vendor/symfony/security/Http/Firewall/AccessListener.php:2)"} []
[2020-08-29 00:36:07.458358] app.INFO: [91395b070cc98617a96be6f01dfe6902] Response: {"meta":{"version":"v2.27.12","api_status":"stable"},"errors":[{"code":1005,"title":"Access denied","details":"User doesn't have permission"}]} []
[2020-08-29 00:36:07.458674] app.INFO: [91395b070cc98617a96be6f01dfe6902] Request GET_/metrics returns 403 in 14.44 ms [] []
It looks like the role provided to the authenticated Apikey does not have the proper permissions to access the endpoints.
Are there any missing steps to get this working?
Image and tag version: docker.whatsapp.biz/web:v2.27.12
Thank you!
Hi,
I have a business account and also can open the "Whatsapp Manager" page. But the challenge is I can't add any phone number in Whatsapp Manager. Here goes the error message.
"The certificate is not available for your business. Only the business solution provider who manages integration with the WhatsApp business platform will be able to download the certificate."
I hit google to find any solutions for this, but there is none, even I am not sure how to make my account as business solution provider. So please let me know how I can add phone numbers and use the Whatsapp business API.
Many thanks!
Adding my account details in snapshot as attachment.
The kubernetes manifests reference a secret that isn't in the repo (whatsapp-config
).
Español:
La Herramienta Web Business está obsoleta, ¿no? Sugiero que la herramienta sea abierta a Open Source y sea la comunidad de la API de WhatsApp Business quien actualice y mantenga esta interfaz gráfica. Solo que WhatsApp libere el código y que en cada actualización se agregue el código modificado al momento de la nueva versión. Esta interfaz puede ser modificada hasta ser casi la app de WhatsApp Business si la comunidad asi lo desea. Tambien sugiero cambiar el logotipo de la API de WhatsApp Business (que es el mismo de WhatsApp) con este logo FANMADE hecho por BSP's como el que adjunto aqui.
English:
The Web Business Tool is outdated, right? I suggest that the tool be open to Open Source and that the WhatsApp Business API community update and maintain this graphical interface. Only that WhatsApp releases the code and that in each update the modified code is added at the time of the new version. This interface can be modified until it is almost the WhatsApp Business app if the community so wishes. I also suggest changing the WhatsApp Business API logo (which is the same as WhatsApp) with this FANMADE logo made by BSP's like the one attached here.
The version of the PHP used by the web app it's no longer supported by dynatrace.
How can I monitoring the WhatsApp-Business-API-Setup on dynatrace?
https://www.dynatrace.com/support/help/shortlink/support-php#support-matrix
I'm using my own Prometheus to scrape the metrics on the endpoints / metrics? Prometheus and / v1 / stats? Prometheus. Because the token expires every 7 days I have problems analyzing the environment, is there any way around this?
W0115 00:51:54.276974 15 none:0] QObject::~QObject: Timers cannot be stopped from another thread req_id=Main```
docker-compose up -d
ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?
If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
then I try as the suggestion command:
sudo WA_API_VERSION=2.23.4 docker-compose up -d
ERROR: error pulling image configuration: error parsing HTTP 403 response body: invalid character 'F' looking for beginning of value: "Forbidden!"
How to solve this issue? I am running on Peppermint 9 equal to Ubuntu 18.04 LTS
Hello, I'm working on a rather large setup in order to consolidate databases on a single server instance. It seems that, although undocumented, this is supported via env vars WA_DB_NAME_PREFIX
and WA_DB_SHARD_PREFIX
:
MySQL [mysql]> show databases;
+-------------------------------------+ n
| Database |
+-------------------------------------+
| information_schema |
| example_whatsapp_clusterStore |
| example_whatsapp_configStore |
| example_whatsapp_waweb |
| mysql |
| performance_schema |
| sys |
+-------------------------------------+
what I'd like to know is that this undocumented feature is here to stay, and/or there are others caveats to bear in mind doing this analysis.
Thank you, regards!
Can you provide guidance and example using k8s liveness probes hooked onto v1/health?
Hello.
I've been trying to run the service in my web server and also locally, and I couldn't in both of them.
I'm not proficient in docker, but I could manage to follow the steps in the tutorial.
When I finally got the service running, I can't make any requests into it. It always refuses the connection. I verified many times the environment data and everything and it's okay.
The main tutorial doesn't mention any SSL compulsoriness. The server shows running ok in the docker list, also I tried what's in https://developers.facebook.com/docs/whatsapp/guides/security but I am not sure if I did right.
Here's my compose:
version: '3'
volumes:
whatsappMedia:
driver: local
services:
wacore:
image: docker.whatsapp.biz/coreapp:v2.27.12
command: ["/opt/whatsapp/bin/wait_on_postgres.sh", "/opt/whatsapp/bin/launch_within_docker.sh"]
volumes:
- whatsappMedia:/usr/local/wamedia
env_file:
- db.env
environment:
WA_DB_SSL_KEY: "private.key"
WA_DB_SSL_CERT: "certificate.crt"
WA_DB_SSL_CA: "ca_bundle.crt"
WA_WEB_SECURITY_LEVEL: MODERN
WA_SECRET: De8tr5ct1lljS
# This is the version of the docker templates being used to run WhatsApp Business API
WA_RUNNING_ENV_VERSION: v2.2.3
ORCHESTRATION: DOCKER-COMPOSE
network_mode: bridge
waweb:
image: docker.whatsapp.biz/web:v2.27.12
command: ["/opt/whatsapp/bin/wait_on_postgres.sh", "/opt/whatsapp/bin/launch_within_docker.sh"]
ports:
- "1010:443"
volumes:
- whatsappMedia:/usr/local/wamedia
env_file:
- db.env
environment:
WA_DB_SSL_VERIFY: 0
WA_DB_SSL_KEY: "private.key"
WA_DB_SSL_CERT: "certificate.crt"
WA_DB_SSL_CA: "ca_bundle.crt"
WA_WEB_SECURITY_LEVEL: MODERN
WA_SECRET: De8tr5ct1lljS
WACORE_HOSTNAME: wacore
# This is the version of the docker templates being used to run WhatsApp Business API
WA_RUNNING_ENV_VERSION: v2.2.3
ORCHESTRATION: DOCKER-COMPOSE
depends_on:
- "wacore"
links:
- wacore
network_mode: bridge
So the cert files are on the same folder as the compose, is that right, and it makes sense? Also the lack of SSL makes the app impossible to reach?
The debug logs me these messages:
Database is not up yet - sleeping
getaddrinfo: Name or service not known
What this means? When I change the WA_DB_HOSTNAME to localhost, it shows only Database is not up yet - sleeping, so what's wrong? I guess I must tell it which databse on server it should connect, but how do I do that?
I tried Wadebug with MySql locally and it has shown all right, except on the end when it tried to make requests into the server, so it failed with SSL EOF errors...
If you may, please, help me.
Currently SSL termination is done in webapp lighthttd with self signed certificate. Would be nice to have a non-ssl port exposed to setup ingress service like ingress-nginx.
PS: not sure if it's the right place for the issue. Seems configuration of Dockerfile isn't here
Hi, when deploying more than 1 webapp container the ones who does not create db can fail, as per /opt/whatsapp/bin/launch_within_docker.sh
db creation script invocation:
# create web db and store db config database.yml in DB_CFG_DIR
/usr/bin/php ${SCRIPTS_DIR}/CreateWebDB.php ${HTTP_ROOT} ${DB_CFG_DIR}
could exit with an error:
oggei@rtfm ~ k logs example-whatsapp-web-deployment-69c6b9bfc8-5pltg
Failed to create web db or store db settings to database.yml file.
An exception occurred while executing 'CREATE DATABASE example_whatsapp_waweb':
SQLSTATE[HY000]: General error: 1007 Can't create database 'example_whatsapp_waweb'; database exists
#0 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php(2): Doctrine\DBAL\Driver\AbstractMySQLDriver->convertException('An exception oc...', Object(Doctrine\DBAL\Driver\PDOException))
#1 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(2): Doctrine\DBAL\DBALException::driverExceptionDuringQuery(Object(Doctrine\DBAL\Driver\PDOMySql\Driver), Object(Doctrine\DBAL\Driver\PDOException), 'CREATE DATABASE...', Array)
#2 /var/www/html/src/WhatsApp/Database/DBConnection.php(2): Doctrine\DBAL\Connection->executeUpdate('CREATE DATABASE...', Array, Array)
#3 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractSchemaManager.php(2): WhatsApp\Database\DBConnection->executeUpdate('CREATE DATABASE...')
#4 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractSchemaManager.php(2): Doctrine\DBAL\Schema\AbstractSchemaManager->_execSql('CREATE DATABASE...')
#5 /var/www/html/src/WhatsApp/Database/DBUtil.php(2): Doctrine\DBAL\Schema\AbstractSchemaManager->createDatabase('example_whatsap...')
#6 /var/www/html/src/WhatsApp/Database/DBUtil.php(2): WhatsApp\Database\DBUtil->createDatabase(Object(WhatsApp\Database\DBConnection), 'example_whatsap...')
#7 /var/www/html/src/WhatsApp/Scripts/CreateWebDB.php(2): WhatsApp\Database\DBUtil->createDBConnection(Array)
#8 {main}
I'm unsure on why this does not happen everytime, but we are experiencing this.
Given the /var/lib/whatsapp/
directory content (ssl certs apart this config) I suspect a sensible way could be to share this as a RWX volume between waweb containers, I'm trying that way and it seems to work correctly, what do you think?
I think the same problem could apply either w/ k8s and docker-compose, I understand diagrams nor compose files use a multiwebapp but k8s manifests provide such a solution and it seems great, is multiwaweb option unavailable at the moment?
Apr 29, 2020 @ 19:27:21.020 MySQL is up. Starting /opt/whatsapp/bin/launch_within_docker.sh
Apr 29, 2020 @ 19:27:21.110 Failed to create web db or store db settings to database.yml file.
Apr 29, 2020 @ 19:27:21.110 An exception occured in driver: SQLSTATE[08004] [1040] Too many connections
Apr 29, 2020 @ 19:27:21.110 #0 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php(2): Doctrine\DBAL\Driver\AbstractMySQLDriver->convertException('An exception oc...', Object(Doctrine\DBAL\Driver\PDOException))
Apr 29, 2020 @ 19:27:21.110 #1 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php(2): Doctrine\DBAL\DBALException::driverException(Object(Doctrine\DBAL\Driver\PDOMySql\Driver), Object(Doctrine\DBAL\Driver\PDOException))
Apr 29, 2020 @ 19:27:21.110 #2 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(2): Doctrine\DBAL\Driver\PDOMySql\Driver->connect(Array, 'root', 'password...', Array)
Apr 29, 2020 @ 19:27:21.110 #3 /var/www/html/src/WhatsApp/Database/DBConnection.php(2): Doctrine\DBAL\Connection->connect()
Apr 29, 2020 @ 19:27:21.110 #4 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(2): WhatsApp\Database\DBConnection->connect()
Apr 29, 2020 @ 19:27:21.110 #5 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(2): Doctrine\DBAL\Connection->getDatabasePlatformVersion()
Apr 29, 2020 @ 19:27:21.110 #6 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(2): Doctrine\DBAL\Connection->detectDatabasePlatform()
Apr 29, 2020 @ 19:27:21.110 #7 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractSchemaManager.php(2): Doctrine\DBAL\Connection->getDatabasePlatform()
Apr 29, 2020 @ 19:27:21.110 #8 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php(2): Doctrine\DBAL\Schema\AbstractSchemaManager->__construct(Object(WhatsApp\Database\DBConnection))
Apr 29, 2020 @ 19:27:21.110 #9 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(2): Doctrine\DBAL\Driver\AbstractMySQLDriver->getSchemaManager(Object(WhatsApp\Database\DBConnection))
Apr 29, 2020 @ 19:27:21.110 #10 /var/www/html/src/WhatsApp/Database/DBUtil.php(2): Doctrine\DBAL\Connection->getSchemaManager()
Apr 29, 2020 @ 19:27:21.110 #11 /var/www/html/src/WhatsApp/Database/DBUtil.php(2): WhatsApp\Database\DBUtil->createDatabase(Object(WhatsApp\Database\DBConnection), 'waweb')
Apr 29, 2020 @ 19:27:21.110 #12 /var/www/html/src/WhatsApp/Scripts/CreateWebDB.php(2): WhatsApp\Database\DBUtil->createDBConnection(Array)
Apr 29, 2020 @ 19:27:21.110 #13 {main}
Apr 29, 2020 @ 19:27:21.120 Added SSL configuration
Apr 29, 2020 @ 19:27:21.121 Creating self-signed certificate for server: localhost
Apr 29, 2020 @ 19:27:21.141 Generating RSA private key, 2048 bit long modulus
Apr 29, 2020 @ 19:27:21.158 ............+++
Apr 29, 2020 @ 19:27:21.318 ............................................................................................+++
Apr 29, 2020 @ 19:27:21.318 e is 65537 (0x10001)
Apr 29, 2020 @ 19:27:21.318 Created root CA key
Apr 29, 2020 @ 19:27:21.321 You are about to be asked to enter information that will be incorporated
Apr 29, 2020 @ 19:27:21.321 into your certificate request.
Apr 29, 2020 @ 19:27:21.321 There are quite a few fields but you can leave some blank
Apr 29, 2020 @ 19:27:21.321 For some fields there will be a default value,
Apr 29, 2020 @ 19:27:21.321 If you enter '.', the field will be left blank.
Apr 29, 2020 @ 19:27:21.321 -----
Apr 29, 2020 @ 19:27:21.321 What you are about to enter is what is called a Distinguished Name or a DN.
Apr 29, 2020 @ 19:27:21.323
Apr 29, 2020 @ 19:27:21.323 Created root CA (autogen) certificate
Apr 29, 2020 @ 19:27:21.326 Country Name (2 letter code) [AU]:State or Province Name (full name) [Some-State]:Locality Name (eg, city) []:Organization Name (eg, company) [Internet Widgits Pty Ltd]:Organizational Unit Name (eg, section) []:Common Name (e.g. server FQDN or YOUR name) []:Email Address []:Generating RSA private key, 2048 bit long modulus
Apr 29, 2020 @ 19:27:21.364 .................................+++
Apr 29, 2020 @ 19:27:21.376 ..........+++
Apr 29, 2020 @ 19:27:21.376 e is 65537 (0x10001)
Apr 29, 2020 @ 19:27:21.376 Created device key for localhost
Apr 29, 2020 @ 19:27:21.379 You are about to be asked to enter information that will be incorporated
Apr 29, 2020 @ 19:27:21.379 into your certificate request.
Apr 29, 2020 @ 19:27:21.379 What you are about to enter is what is called a Distinguished Name or a DN.
Apr 29, 2020 @ 19:27:21.379 There are quite a few fields but you can leave some blank
Apr 29, 2020 @ 19:27:21.379 For some fields there will be a default value,
Apr 29, 2020 @ 19:27:21.379 If you enter '.', the field will be left blank.
Apr 29, 2020 @ 19:27:21.379 -----
Apr 29, 2020 @ 19:27:21.379 Country Name (2 letter code) [AU]:State or Province Name (full name) [Some-State]:Locality Name (eg, city) []:Organization Name (eg, company) [Internet Widgits Pty Ltd]:Organizational Unit Name (eg, section) []:Common Name (e.g. server FQDN or YOUR name) []:Email Address []:
Apr 29, 2020 @ 19:27:21.379 Please enter the following 'extra' attributes
Apr 29, 2020 @ 19:27:21.379 to be sent with your certificate request
Apr 29, 2020 @ 19:27:21.381
Apr 29, 2020 @ 19:27:21.381 Created device certificate signing request
Apr 29, 2020 @ 19:27:21.383 A challenge password []:An optional company name []:Signature ok
Apr 29, 2020 @ 19:27:21.383 subject=/CN=localhost
Apr 29, 2020 @ 19:27:21.384 Getting CA Private Key
Apr 29, 2020 @ 19:27:21.385 Signed device certificate
Apr 29, 2020 @ 19:27:21.388 Deleted root CA (autogen) key
Apr 29, 2020 @ 19:27:21.388 Provisioning certificates
Apr 29, 2020 @ 19:27:21.408 PHP Fatal error: Uncaught PDOException: SQLSTATE[08004] [1040] Too many connections in /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:2
Apr 29, 2020 @ 19:27:21.408 Stack trace:
Apr 29, 2020 @ 19:27:21.408 #0 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php(2): PDO->__construct('mysql:host=wa-v...', 'root', 'password...', Array)
Apr 29, 2020 @ 19:27:21.408 #1 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php(2): Doctrine\DBAL\Driver\PDOConnection->__construct('mysql:host=wa-v...', 'root', 'password...', Array)
Apr 29, 2020 @ 19:27:21.408 #2 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(2): Doctrine\DBAL\Driver\PDOMySql\Driver->connect(Array, 'root', 'password...', Array)
Apr 29, 2020 @ 19:27:21.408 #3 /var/www/html/src/WhatsApp/Database/DBConnection.php(2): Doctrine\DBAL\Connection->connect()
Apr 29, 2020 @ 19:27:21.408 #4 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(2): WhatsApp\Database\DBConnection->connect()
Apr 29, 2020 @ 19:27:21.408 #5 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(2): Doctrine\DBAL\Connection->getDatabasePlatformVersion( in /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php on line 2
Apr 29, 2020 @ 19:27:21.417 SSL Hardened
Apr 29, 2020 @ 19:27:21.417 SSL enabled
Apr 29, 2020 @ 19:27:21.417 Provisioned certificates successfully
Apr 29, 2020 @ 19:27:21.418 Cleaned up staging area
Apr 29, 2020 @ 19:27:21.519 * Starting web server lighttpd
Apr 29, 2020 @ 19:27:21.535 2020-04-29 10:27:21: (network.c.537) SSL: BIO_read_filename('/var/lib/whatsapp/www.cert') failed
Apr 29, 2020 @ 19:27:21.536 ...fail!
Apr 29, 2020 @ 19:27:21.536 Web server started
Apr 29, 2020 @ 19:27:21.537 tail: cannot open '/var/log/lighttpd/error.log' for reading: No such file or directory
Apr 29, 2020 @ 19:27:21.537 tail: cannot open '/var/log/whatsapp/web.log' for reading: No such file or directory
Apr 29, 2020 @ 19:27:21.537 Starting web monitor loop ...
Apr 29, 2020 @ 19:27:21.543 Setting up watches.
Apr 29, 2020 @ 19:27:21.543 Watches established.
after that it stays running, and no logs
we using v2.27.8
The documentation available at developers.facebook.com does not mention the kubernetes setup. This should be documented as well. I would imagine more people will be running this setup than the docker-compose
setup.
We are looking into deploying WhatsApp Business API but we noticed that the DB name cannot be set through envionment variables, even though it's possible all the other variables such as WA_DB_ENGINE
, WA_DB_HOSTNAME
, ...
.
Would it be possible to add the support for the WA_DB_NAME
environment variable ?
Hi, the file db.env have a wrong configuration.
-> WRONG WA_DB_PORT=3306
-> CORRECT WA_DB_PORT=33060
Regards
Massimiliano & Fausto
it's similar with #23 when running docker-compose from indonesia
docker-compose up -d
Pulling wacore (docker.whatsapp.biz/coreapp:v2.33.3)...
v2.33.3: Pulling from coreapp
83ee3a23efb7: Pulling fs layer
db98fc6f11f0: Pulling fs layer
f611acd52c6c: Pulling fs layer
f85e9fda1e76: Waiting
8031e26de4a5: Waiting
d75c233db377: Waiting
eb6a89aa8799: Waiting
dea8a3ecac8b: Waiting
ea976d199fd6: Waiting
ERROR: error pulling image configuration: error parsing HTTP 403 response body: invalid character 'F' looking for beginning of value: "Forbidden!"
I'm using ubuntu 16.04 i've tried using 2 different block IP from my provider but seems both was blocked.
Hi, I know that Facebook will release a WhatsApp Business API tool on its own platform. I am wondering if there is any way to test the tool or access it currently? I want to see if it is better if Facebook manages my API endpoint or if it remains the same with my own local installation in Docker.
During my configuration of the whatsapp business kubernetes environment, I noticed a problem in the loading of the environment variables responsible for the loading of the attributes for ssl connection between the web application and mysql.
This problem occurs due to the value set in the wa-db-engine attribute of the db.env file.
The value set in this file is in uppercase (MYSQL), but internally in the web application code, inside the DBUtil.php file, it performs some comparisons with a constant called DB_MYSQL, which has its lowercase value (mysql) inside the Constants file .php.
When creating the connection, before loading the environment variables responsible for the SSL settings, it compares the value of this constant (DB_MYSQL) with the value set in the environment variable (WA_DB_ENGINE) of the webapp.yml file. The value of this environment variable is filled in using the value set in the db.env file, using a reference to the wa-db-engine attribute.
If this comparison fails, it does not load the environment variables for configuring the ssl properties that are used to connect to mysql.
When these environment variables are not loaded properly and you are pointing to an SSL connection url, you receive an error when creating the connection.
This is the error message: SSL connection is required. Please specify SSL options and retry.
To solve this problem, I believe that it is necessary to change the value of the property wa-db-engine to minuscule in the file db.env or adjust the logic used in the file DBUtils to load the environment variables related to the SSL settings.
I already installed a new single instance server, but in the DB I can't find the message_id which I get it from webhook or post message response, so how can I know which msg the user replay for? or if I need to let the msg as read it, if I can't find the message-id in the database?
App fails to start with no specific explanation of why exactly it failed. permissions, networks or something else, I used completely default configs, tried on two different Kubernetes distributions.
ls: cannot access 'wa-service.log.*': No such file or directory
ls: cannot access 'wa-service.INFO': No such file or directory
sed: -e expression #1, char 0: no previous regular expression
No logs to move
starting normal service from container script
AppPropertiesPrivate::defaultTcpListenAddress_ "any"
AppPropertiesPrivate::multiConnectEnabled_ true
I0115 00:15:02.141500 15 main.cpp:36] ---- FieldStats initialization ---- req_id=Main
I0115 00:15:02.142014 15 fieldstats.cpp:170] FIELDSTATS: wam file is missing req_id=Main
I0115 00:15:02.142508 15 fieldstats.cpp:170] FIELDSTATS: initialized with new wam file req_id=Main
I0115 00:15:02.147759 15 util.cpp:2967] Calling Get Orchestration req_id=Main
I0115 00:15:02.147799 15 util.cpp:2986] Calling Get TemplateVersion req_id=Main
I0115 00:15:02.148895 16 apiendpointmanager.cpp:166] Endpoint "healthcheck" is listening on address "0.0.0.0" port 6253 req_id=Main
I0115 00:15:02.149866 17 apiendpointmanager.cpp:166] Endpoint "control" is listening on address "0.0.0.0" port 6252 req_id=Main
I0115 00:15:02.149940 15 main.cpp:41] ---- ConfigStore initialization ---- req_id=Main
I0115 00:15:02.159400 15 dbsettings.cpp:103] Changed default database engine from "SQLITE" to "MYSQL" req_id=Main
I0115 00:15:02.161686 15 datastore.cpp:670] "create_configStore_139985107619456" connectOption: "MYSQL_OPT_RECONNECT=1;MYSQL_OPT_CONNECT_TIMEOUT=15;MYSQL_OPT_READ_TIMEOUT=30;MYSQL_OPT_WRITE_TIMEOUT=30" req_id=Main
I0115 00:15:02.190256 15 datastore.cpp:94] Created database "configStore" req_id=Main
I0115 00:15:02.190462 15 datastore.cpp:670] "configStore" connectOption: "MYSQL_OPT_RECONNECT=1;MYSQL_OPT_CONNECT_TIMEOUT=15;MYSQL_OPT_READ_TIMEOUT=30;MYSQL_OPT_WRITE_TIMEOUT=30" req_id=Main
I0115 00:15:02.217798 15 datastore.cpp:347] Set sql_mode to "NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ZERO_IN_DATE" req_id=Main
I0115 00:15:02.218341 15 configstore.cpp:546] Creating cluster info req_id=Main
I0115 00:15:02.218489 15 configstore.cpp:1064] App settings does not exist req_id=Main
I0115 00:15:02.218602 15 configstore.cpp:857] Creating cluster_info table req_id=Main
I0115 00:15:02.219434 15 configstore.cpp:870] cluster_info table created req_id=Main
I0115 00:15:02.220360 15 clusterstore.cpp:55] ClusterStore::ClusterStore() req_id=Main
I0115 00:15:02.220391 15 slavenode.cpp:9] CoreAppNode::CoreAppNode( "multi-instance coreapp" ClusterState::Type(NORMAL) ) req_id=Main
I0115 00:15:02.220454 15 datastore.cpp:670] "create_clusterStore_139985107619456" connectOption: "MYSQL_OPT_RECONNECT=1;MYSQL_OPT_CONNECT_TIMEOUT=15;MYSQL_OPT_READ_TIMEOUT=30;MYSQL_OPT_WRITE_TIMEOUT=30" req_id=Main
I0115 00:15:02.248736 15 datastore.cpp:94] Created database "clusterStore" req_id=Main
I0115 00:15:02.249078 15 datastore.cpp:670] "clusterStore" connectOption: "MYSQL_OPT_RECONNECT=1;MYSQL_OPT_CONNECT_TIMEOUT=15;MYSQL_OPT_READ_TIMEOUT=30;MYSQL_OPT_WRITE_TIMEOUT=30" req_id=Main
I0115 00:15:02.275458 15 datastore.cpp:347] Set sql_mode to "NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ZERO_IN_DATE" req_id=Main
I0115 00:15:02.276626 15 clusterstore.cpp:100] cluster database opened req_id=Main
I0115 00:15:02.276661 15 clusterstore.cpp:957] Creating ClusterStore root tables req_id=Main
I0115 00:15:02.278141 15 clusterstore.cpp:1095] Register self to nodes table req_id=Main
I0115 00:15:02.282073 15 clusterstore.cpp:1384] LeaseManager::LeaseManager() req_id=Main
I0115 00:15:02.282209 15 clusterstore.cpp:1116] Get cluster info req_id=Main
I0115 00:15:02.282321 18 clusterstore.cpp:1395] LeaseManager::start() req_id=LeaseManager
W0115 00:15:02.283293 15 clusterstore.cpp:157] Cluster is under ClusterState::Type(UPGRADE) state at ("10.12.20.150":"6250,6251,6252,6253",0) exit! req_id=Main
W0115 00:15:02.283390 15 onpremise_clustermanager.cpp:103] Unable to initialize cluster store req_id=Main
I0115 00:15:02.283426 15 configstore.cpp:599] Failed to initialize cluster manager, will retry after 1000 ms req_id=Main
I0115 00:15:03.283586 15 clusterstore.cpp:1116] Get cluster info req_id=Main
W0115 00:15:03.285792 15 clusterstore.cpp:157] Cluster is under ClusterState::Type(UPGRADE) state at ("10.12.20.150":"6250,6251,6252,6253",0) exit! req_id=Main
W0115 00:15:03.285924 15 onpremise_clustermanager.cpp:103] Unable to initialize cluster store req_id=Main
I0115 00:15:03.285977 15 configstore.cpp:599] Failed to initialize cluster manager, will retry after 2000 ms req_id=Main
I0115 00:15:05.286195 15 clusterstore.cpp:1116] Get cluster info req_id=Main
W0115 00:15:05.287765 15 clusterstore.cpp:157] Cluster is under ClusterState::Type(UPGRADE) state at ("10.12.20.150":"6250,6251,6252,6253",0) exit! req_id=Main
W0115 00:15:05.287859 15 onpremise_clustermanager.cpp:103] Unable to initialize cluster store req_id=Main
I0115 00:15:05.287937 15 configstore.cpp:599] Failed to initialize cluster manager, will retry after 4000 ms req_id=Main
I0115 00:15:09.288110 15 clusterstore.cpp:1116] Get cluster info req_id=Main
W0115 00:15:09.289561 15 clusterstore.cpp:157] Cluster is under ClusterState::Type(UPGRADE) state at ("10.12.20.150":"6250,6251,6252,6253",0) exit! req_id=Main
W0115 00:15:09.289645 15 onpremise_clustermanager.cpp:103] Unable to initialize cluster store req_id=Main
I0115 00:15:09.289670 15 configstore.cpp:599] Failed to initialize cluster manager, will retry after 8000 ms req_id=Main
I0115 00:15:17.289829 15 clusterstore.cpp:1116] Get cluster info req_id=Main
W0115 00:15:17.292439 15 clusterstore.cpp:157] Cluster is under ClusterState::Type(UPGRADE) state at ("10.12.20.150":"6250,6251,6252,6253",0) exit! req_id=Main
W0115 00:15:17.292665 15 onpremise_clustermanager.cpp:103] Unable to initialize cluster store req_id=Main
I0115 00:15:17.292867 15 configstore.cpp:599] Failed to initialize cluster manager, will retry after 16000 ms req_id=Main
I0115 00:15:24.003279 16 apiendpointmanager.cpp:245] Processing incoming TCP socket connection on port 6253 from QHostAddress("::ffff:10.12.20.150") req_id=healthcheckEndpoint
I0115 00:15:24.003516 16 apiendpointmanager.cpp:347] API submittal to "healthcheck" has version 1 and size 382 req_id=2abd62ab9c8f433a9ebdf116a4ddde40
I0115 00:15:24.003952 16 apiendpointmanager.cpp:541] "heartbeat" API submittal to "healthcheck" handled in 0 ms req_id=2abd62ab9c8f433a9ebdf116a4ddde40
I0115 00:15:29.004329 16 apiendpointmanager.cpp:245] Processing incoming TCP socket connection on port 6253 from QHostAddress("::ffff:10.12.20.150") req_id=healthcheckEndpoint
I0115 00:15:29.004426 16 apiendpointmanager.cpp:347] API submittal to "healthcheck" has version 1 and size 382 req_id=962026d8d2304d0cb27c37f6fc5be2a0
I0115 00:15:29.004810 16 apiendpointmanager.cpp:541] "heartbeat" API submittal to "healthcheck" handled in 0 ms req_id=962026d8d2304d0cb27c37f6fc5be2a0
I0115 00:15:33.293115 15 clusterstore.cpp:1116] Get cluster info req_id=Main
W0115 00:15:33.296357 15 clusterstore.cpp:157] Cluster is under ClusterState::Type(UPGRADE) state at ("10.12.20.150":"6250,6251,6252,6253",0) exit! req_id=Main
W0115 00:15:33.314177 15 onpremise_clustermanager.cpp:103] Unable to initialize cluster store req_id=Main
I0115 00:15:33.314230 15 configstore.cpp:599] Failed to initialize cluster manager, will retry after 32000 ms req_id=Main
I0115 00:15:34.003326 16 apiendpointmanager.cpp:245] Processing incoming TCP socket connection on port 6253 from QHostAddress("::ffff:10.12.20.150") req_id=healthcheckEndpoint
I0115 00:15:34.003638 16 apiendpointmanager.cpp:347] API submittal to "healthcheck" has version 1 and size 382 req_id=6879630cd700481aa101bbcd6f1e2628
I0115 00:15:34.004247 16 apiendpointmanager.cpp:541] "heartbeat" API submittal to "healthcheck" handled in 1 ms req_id=6879630cd700481aa101bbcd6f1e2628```
Hi,
The samples are with mysqld_exporter, is postgreSQL also supported for monitoring instance?
Thanks!
I get this error that I don't understand:
[root@localhost mark42]# docker-compose up -d
Pulling wacore (docker.whatsapp.biz/coreapp:v2.31.4)...
v2.31.4: Pulling from coreapp
4f53fa4d2cf0: Pulling fs layer
6af7c939e38e: Pulling fs layer
903d0ffd64f6: Pulling fs layer
04feeed388b7: Waiting
5e8b3db3500c: Waiting
3753a44ac819: Waiting
18bf76221b51: Waiting
699200463962: Waiting
427d537c1a25: Waiting
6b9dde11b413: Waiting
6a72a02a430e: Waiting
b8e062498aae: Waiting
ebe407c760a1: Waiting
ERROR: error pulling image configuration: error parsing HTTP 403 response body:
invalid character 'F' looking for beginning of value: "Forbidden!"
I also have one question: how and where can I know the right value of WA_API_VERSION environment variable?
on GKE path for Kubernetes causing crash since GKE got security settings enabled for /usr/ path, replacing the path fix the issue
Hi
I have downloaded/cloned to git repository and I am getting while executing command to pull docker images.
docker-compose up -d
Pulling wacore (docker.whatsapp.biz/coreapp:vv2.27.8)...
ERROR: manifest for docker.whatsapp.biz/coreapp:vv2.27.8 not found: manifest unknown: The named manifest is not known to the registry.
Please suggest.
Thanks
Hi, I have just installed Whatsapp Business API through Developer Setup: Single Instance, but when I reached the testing point with Postman, it throws an "Error: socket hang up".
I have followed both Initial Setup provided here in docs and Postman first setup carefully.
Thank you.
I'm hosting WhatsApp-Business-API setup on AWS Eks Kubernetes and getting below error.
Error-
Unable to initialize cluster store req_id=Main
I0607 11:02:25.276165 15 configstore.cpp:678] Failed to initialize cluster manager, will retry after 8000 ms req_id=Main
I0607 11:02:27.617393 16 apiendpointmanager.cpp:271] Processing incoming TCP socket connection on port 6253 from QHostAddress("::ffff:10.60.17.200") req_id=healthcheckEndpoint
version -v2.27.12
Hi,
I am having an issue with my set up for WhatsApp Business API using the FB Biz Manager.
What I have done so far:
The issue:
I am unable to find 'WhatsApp Accounts' in my Facebook Business Manager settings, I see Instagram Accounts, but no WhatsApp.
Please do let me know if there are any fixes for this.
Thank you.
I try to setup the WhatsApp Business API with an external MySQL database (Azure Database for MySQL). That database requires SSL (see here).
I already followed the instructions from the official documentation (see here). However, it looks like that the whatsapp-web component ignores the defined environment variables. I uploaded the certificates to the defined path (/usr/local/waent/data/certs). The connection via terminal to the database works. Also, if I disable the SSL setting on the MySQL database the connection works as well.
The error message I see in the logs: SSL connection is required. Please specify SSL options and retry
Could you please provide an dedicated example for enabled SSL configuration.
whatsapp-web env:
...
env:
- name: WA_DB_SSL_CA
value: "/usr/local/waent/data/certs/filename.crt.pem"
volumeMounts:
- name: whatsapp-media
mountPath: /usr/local/waent/data
...
The defined path above (/usr/local/waent/data) is mounted as a persistent volume on the kubernetes system.
The error log from the pod.
PHP Fatal error: Uncaught PDOException: SQLSTATE[HY000] [9002] SSL connection is required. Please specify SSL options and retry. in /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:2
Stack trace:
#0 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php(2): PDO->__construct('mysql:host=app-...', '...', '...', Array)
#1 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php(2): Doctrine\DBAL\Driver\PDOConnection->__construct('mysql:host=app-...', '...', '...', Array)
#2 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(2): Doctrine\DBAL\Driver\PDOMySql\Driver->connect(Array, '...', '...', Array)
#3 /var/www/html/src/WhatsApp/Database/DBConnection.php(2): Doctrine\DBAL\Connection->connect()
#4 /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(2): WhatsApp\Database\DBConnection->connect()
#5 /var/www/html/vendor/doctrine/dbal/lib in /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php on line 2
SSL Hardened
SSL enabled
We are using the latest version 2.27.12
.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.