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

AddContact#

Test Postman Apidog

Метод предназначен для добавления номера в контакты, а также для добавления номера в телефонную книгу основного устройства (телефонной трубки).

Чем отличаются контакты WhatsApp и телефонной книги основного устройства

В WhatsApp есть собственный менеджер контактов, который по умолчанию не связан с телефонной книгой основного устройства. Сделанно это для повышения приватности, а также удобства переноса контактов WhatsApp при работе на разных устройствах: Android, iOS, Windows, WEB. По умолчанию синхронизация контактов между телефонной книгой основого устройства и WhatsApp может быть выключена, поэтому необходимо включить синхранизацию контактов в API и, иногда, на вашем основном устройстве.
Подробнее читайте в статье Как управлять списком контактов в телефонной книге подключенного телефона?

Запрос#

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

POST
{{apiUrl}}/waInstance{{idInstance}}/addContact/{{apiTokenInstance}}

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

Параметры запроса#

Параметр Тип Обязательный Описание
chatId string Да Номер телефона в формате идентификатора личного чата. Например "79876543210@c.us"
firstName string Да Имя контакта
lastName string Нет Фамилия контакта
saveInAddressbook boolean Нет Флаг сохранять ли контакт в телефонной книге на основном устройстве. Значение по умолчанию true

Пример тела запроса#

{
    "chatId": "79876543210@c.us",
    "firstName": "Иван",
    "lastName": "Царевич",
    "saveInAddressbook": true 
}

Ответ#

Поля ответа#

Поле Тип Описание
addContact boolean Возвращает True, если метод выполнен без ошибок. Отсуствует в ответе тела с ошибкой.
messsage string Описание ошибки, если метод выполнен с ошибкой. Отсутствует в ответе тела без ошибки.

Пример тела ответа#

{
    "addContact": true
}

Выполнение метода с ошибкой#

status code 400 Bad request

{
    "message": "Contact 77059640505@c.us already exists"
}

status code 404 Not found

{
    "message": "77059640505@c.us is not on WhatsApp"
}

Ошибки AddContact#

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

Код HTTP Идентификатор ошибки Описание
400 Bad Request
Contact 79876543210@c.us already exists
Контакт с этим номером уже есть в телефонной книге
404 Not found
79876543210@c.us is not on WhatsApp
Контакт с этим номером отсутствует в WhatsApp

Примеры кода#

import requests

url = "{{apiUrl}}/waInstance{{idInstance}}/addContact/{{apiTokenInstance}}"

payload = {
    "chatId": "79876543210@c.us",
    "firstName": "Иван",
    "lastName": "Царевич",
    "saveInAddressbook": true
}
headers = {
'Content-Type': 'application/json'
}

response = requests.post(url, json=payload, headers=headers)

print(response.text.encode('utf8'))
<?php
//The apiUrl, idInstance and apiTokenInstance values are available in console, double brackets must be removed
$url = '{{apiUrl}}/waInstance{{idInstance}}/addContact/{{apiTokenInstance}}';

//chatId is the number (@c.us)  
$data = array(
    'chatId' => '71234567890@c.us',
    'firstName' => 'Иван',
    'lastName' => 'Царевич',
    'saveInAddressbook' => 'true',
);

$options = array(
    'http' => array(
        'header' => "Content-Type: application/json\r\n",
        'method' => 'POST',
        'content' => json_encode($data)
    )
);

$context = stream_context_create($options);

$response = file_get_contents($url, false, $context);

echo $response;
?>
curl --location '{{apiUrl}}/waInstance{{idInstance}}/addContact/{{apiTokenInstance}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "chatId": "71234567890@c.us",
    "firstName": "Иван",
    "lastName": "Царевич",
    "saveInAddressbook": true
}'
Sub AddContact()
Dim URL As String
Dim RequestBody As String
Dim http As Object

' The apiUrl, idInstance and apiTokenInstance values are available in console, double brackets must be removed
URL = "{{apiUrl}}/waInstance{{idInstance}}/addContact/{{apiTokenInstance}}"

' chatId is the number (@c.us)
RequestBody = "{""chatId"":""71234567890@c.us"",""firstName"":""Иван"", ""lastName"":""Царевич"", ""saveInAddressbook"":""true""}"

Set http = CreateObject("MSXML2.XMLHTTP")

With http
    .Open "POST", URL, False
    .setRequestHeader "Content-Type", "application/json"
    .send RequestBody
End With

Set http = Nothing

End Sub
program addContact;

{$APPTYPE CONSOLE}

uses
System.SysUtils,
System.Classes, System.Net.HttpClient, System.Net.URLClient, System.Net.HttpClientComponent;

var
HttpClient: TNetHTTPClient;
RequestBody: TStringStream;
RequestHeaders: TNetHeaders;
Response: IHTTPResponse;
EndpointURL, ID_INSTANCE, API_TOKEN_INSTANCE: string;

begin
ID_INSTANCE := '110100001';
API_TOKEN_INSTANCE := 'd75b3a66374942c5b3c019c698abc2067e151558acbd451234';

EndpointURL := 'https://api.green-api.com/waInstance' + ID_INSTANCE + '/addContact/' + API_TOKEN_INSTANCE;

HttpClient := TNetHTTPClient.Create(nil);
RequestBody := TStringStream.Create('{ "chatId": "79876543210@c.us", "firstName": "Иван", "lastName": "Царевич", "saveInAddressbook": true }', TEncoding.UTF8);
RequestHeaders := [
    TNetHeader.Create('Content-Type', 'application/json')
];

try
    Response := HTTPClient.Post(EndpointURL, RequestBody, nil, RequestHeaders);

    if Response.StatusCode = 200 then
    Writeln('[Response]: ' + Response.ContentAsString)
    else
    Writeln('[ERROR ' + IntToStr(Response.StatusCode) + ']:' + Response.StatusText + '' + Response.ContentAsString);

    readln;
except
    on E: Exception do
    Writeln(E.ClassName, ': ', E.Message);
end;

HttpClient.Free;
RequestBody.Free;

end.