QR#
Рекомендуется использовать метод авторизации по номеру телефона
Метод предназначен для получения QR-кода. Для авторизации инстанса требуется считать QR-код из приложения WhatsApp Business на телефоне. Также получить QR-код и авторизовать инстанс можно в личном кабинете. Процедура авторизации инстанса через личный кабинет описана в разделе Перед началом работы.
QR-код обновляется каждые 20 секунд., поэтому вызывать метод получения QR-кода рекомендуется с интервалом в 1 секунду.
Для получения QR-кода инстанс должен быть в неавторизованном состоянии. Если инстанс авторизован, то предварительно требуется разлогинить инстанс методом Logout.
После успешного сканирования QR-кода и авторизации инстанса формируется входящее уведомление с видом Статус инстанса.
Также получить QR-код можно через websocket-соединение
Запрос#
Для получения QR-кода требуется выполнить запрос по адресу:
{{apiUrl}}/waInstance{{idInstance}}/qr/{{apiTokenInstance}}
Для получения параметров запроса apiUrl
, idInstance
и apiTokenInstance
обратитесь к разделу Перед началом работы.
Ответ#
Поля ответа#
Поле | Тип | Описание |
---|---|---|
type | string | Тип сообщения, возможные значения qrCode , error , alreadyLogged |
message | string | Содержание сообщения. Принимает различные значения в зависимости от значения поля type |
Получено изображение QR-кода#
Поле | Тип | Описание |
---|---|---|
type | string | qrCode - получено изображение QR-кода |
message | string | Изображение QR-кода в кодировке base64 . Для вывода в браузере нужно добавить строку data:image/png;base64, {message} |
Возникла ошибка#
Поле | Тип | Описание |
---|---|---|
type | string | error - возникла ошибка |
message | string | Описание ошибки |
Instance has auth. You need to make log out - данные авторизации есть, но они не пригодны для авторизации, необходимо выполнить метод logout и произвести повторное сканирование QR кода |
Получение QR кода может занимать время до 10 минут
Инстанс уже авторизован#
Поле | Тип | Описание |
---|---|---|
type | string | alreadyLogged - инстанс уже авторизован. Для получения QR-кода требуется предварительно разлогинить инстанс методом Logout |
message | string | Принимает значение instance account already authorized |
Пример получения QR-кода в браузере#
https://qr.green-api.com/waInstance{{idInstance}}/{{apiTokenInstance}}
Для получения параметров запроса idInstance
и apiTokenInstance
обратитесь к разделу Перед началом работы.
Вам необходимо заменить значения idInstance и apiTokenInstance на ваши, для получения ссылки вида:
https://qr.green-api.com/waInstance11015502/ccc44689b17435537c15a939d0a478b71c3bd7d7d52d312345
Также пример получения QR-кода в браузере можно посмотреть в файле browserExampleQRcode.
Ошибки QR#
Перечень общих для всех методов ошибок смотрите в разделе Стандартные ошибки .
Код HTTP | Идентификатор ошибки | Описание |
---|---|---|
200 | OK | Инстанс уже авторизован |
При получении QR-кода по ссылкам выше, может появиться ошибка и загрузка кода будет происходить бесконечно долго | 1. Проверить корректность сформированной ссылки. 2. Проверить корректность данных idInstance и apiTokenInstance |
Примеры кода#
import requests
url = "{{apiUrl}}/waInstance{{idInstance}}/qr/{{apiTokenInstance}}"
payload = {}
headers= {}
response = requests.request("GET", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
curl --location '{{apiUrl}}/waInstance{{idInstance}}/qr/{{apiTokenInstance}}'
var restTemplate = new RestTemplate();
var requestUrl = new StringBuilder();
requestUrl
.append({{apiUrl}})
.append("/waInstance").append({{idInstance}})
.append("/qr/")
.append({{apiTokenInstance}});
var response = restTemplate.exchange(requestUrl.toString(), HttpMethod.GET, null, String.class);
System.out.println(response);
var requestUrl = new StringBuilder();
requestUrl
.append({{apiUrl}})
.append("/waInstance").append({{idInstance}})
.append("/qr/")
.append({{apiTokenInstance}});
var response = Unirest.get(requestUrl.toString())
.header("Content-Type", "application/json")
.asString();
System.out.println(response);
Sub qr()
Dim url As String
Dim http As Object
Dim response As String
' The apiUrl, idInstance and apiTokenInstance values are available in console, double brackets must be removed
url = "{{apiUrl}}/waInstance{{idInstance}}/qr/{{apiTokenInstance}}"
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "GET", url, False
http.Send
response = http.responseText
Debug.Print response
' Outputting the answer to the desired cell
' Range("A1").Value = response
Set http = Nothing
End Sub