Перейти к содержанию

QR#

Test Postman

Метод предназначен для получения QR-кода.
Для авторизации инстанса требуется считать QR-код из мессенджера Telegram на телефоне.

Ввод пароля

При наличии пароля, инстанс перейдет в состояние pendingPassword до авторизации или разлогина. Для завершения авторизации отправьте пароль методом SendAuthorizationPassword

QR-код имеет ограниченное время жизни, поэтому рекомендуется запрашивать новый QR-код каждые 5 секунд.

После успешного сканирования QR-кода и авторизации инстанса формируется входящее уведомление с видом Статус инстанса.

Для метода используются ограничения на частоту запросов в секунду.

Запрос#

Для получения QR-кода требуется выполнить запрос по адресу:

GET
{{apiUrl}}/waInstance{{idInstance}}/qr/{{apiTokenInstance}}

Для получения параметров запроса apiUrl, idInstance и apiTokenInstance обратитесь к разделу Перед началом работы.

Ответ#

Поля ответа#

Поле Тип Описание
type string Тип сообщения, возможные значения qrCode, error, alreadyLogged, already_registered
message string Содержание сообщения. Принимает различные значения в зависимости от значения поля type

Получено изображение QR-кода#

Поле Тип Описание
type string qrCode - получено изображение QR-кода
message string Изображение QR-кода в кодировке base64.
Для вывода в браузере нужно добавить строку data:image/png;base64, {message}

Возникла ошибка#

Поле Тип Описание
type string error - возникла ошибка
message string Описание ошибки
timeout - Сервера Telegram недоступны
not_ready - Инстанс не готов к работе. Попробуйте повторить попытку. Если ошибка сохраняется - обратитесь в техническую поддержку
connection_closed - Запрос отклонён серверами Telegram. Попробуйте повторить попытку. Если ошибка сохраняется - обратитесь в техническую поддержку

Инстанс уже авторизован#

Поле Тип Описание
type string already_registered - инстанс уже авторизован. Для получения 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/waInstance4100000000/abcdef12345fghij67890klmno/

Ошибки#

Перечень общих для всех методов ошибок смотрите в разделе Стандартные ошибки .

Код 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