SetAccountSettings#
Метод предназначен для установки имени, фамилии и описания («О себе») профиля аккаунта.
Для метода используются ограничения на частоту запросов в секунду.
Запрос#
Для установки данных профиля аккаунта требуется выполнить запрос по адресу:
{{apiUrl}}/waInstance{{idInstance}}/setAccountSettings/{{apiTokenInstance}}
Префикс v3 стал необязательным параметром запроса
Для вашего удобства унифицировали формат запросов методов API для всех мессенджеров.
Подробнее о правилах вызова методов читайте в статье Выполнение запросов.
Для получения параметров запроса apiUrl, idInstance и apiTokenInstance обратитесь к разделу Перед началом работы.
Параметры запроса#
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
firstName | string | Нет | Имя профиля (до 59 символов). Пустым быть не может |
lastName | string | Нет | Фамилия профиля (до 59 символов). Пустая строка стирает фамилию |
description | string | Нет | О себе - описание профиля (до 400 символов). Пустая строка стирает описание |
Допускается указывать параметры выборочно. Хотя бы один параметр должен быть указан.
Параметр, не переданный в запросе, не изменяется.
Пример тела запроса#
{
"firstName": "Имя",
"lastName": "Фамилия",
"description": "описание профиля"
}
Ответ#
Поля ответа#
| Поле | Тип | Описание |
|---|---|---|
setAccountSettings | boolean | Флаг, что настройки сохранены. Отсутствует в ответе тела с ошибкой. |
message | string | Описание ошибки, если метод выполнен с ошибкой. Отсутствует в ответе тела без ошибки. |
Пример тела ответа#
{
"setAccountSettings": true
}
Выполнение метода с ошибкой#
status code 400 Bad request
{
"message": "'firstName' contains invalid characters"
}
Ошибки SetAccountSettings#
Перечень общих для всех методов ошибок смотрите в разделе Стандартные ошибки
| Код HTTP | Идентификатор ошибки | Описание |
|---|---|---|
| 400 | Bad Request Validation failed | Ошибка валидации |
| 400 | Validation failed. Details: at least one of 'firstName', 'lastName', 'description' is required | Передано пустое тело запроса |
| 400 | Validation failed. Details: 'firstName' is not allowed to be empty | Имя не может быть пустой строкой |
| 400 | Validation failed. Details: 'firstName' length must be less than or equal to 59 characters long | Превышена длина имени, фамилии (59 символов) или описания (400 символов) |
| 400 | Bad Request 'firstName' contains invalid characters 'lastName' contains invalid characters | Недопустимые символы в имени или фамилии — значение отклонено сервером MAX |
| 400 | Bad Request 'firstName' is not allowed 'lastName' is not allowed | Имя или фамилия запрещены сервером MAX |
| 400 | Bad Request Name is changed too often, try again later | Слишком частая смена имени — ограничение сервера MAX, повторите попытку позже |
Примеры кода#
import requests
url = "{{apiUrl}}/waInstance{{idInstance}}/setAccountSettings/{{apiTokenInstance}}"
payload = {
"firstName": "Имя",
"lastName": "Фамилия",
"description": "описание профиля"
}
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}}/setAccountSettings/{{apiTokenInstance}}';
$data = array(
'firstName' => 'Имя',
'lastName' => 'Фамилия',
'description' => 'описание профиля'
);
$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}}/setAccountSettings/{{apiTokenInstance}}' \
--header 'Content-Type: application/json' \
--data-raw '{
"firstName": "Имя",
"lastName": "Фамилия",
"description": "описание профиля"
}'
var requestBody = new JSONObject();
requestBody.put("firstName", "Имя");
requestBody.put("lastName", "Фамилия");
requestBody.put("description", "описание профиля");
var restTemplate = new RestTemplate();
var requestUrl = new StringBuilder();
requestUrl
.append({{apiUrl}})
.append("/waInstance").append({{idInstance}})
.append("/setAccountSettings/")
.append({{apiTokenInstance}});
var headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
var requestEntity = new HttpEntity<>(requestBody.toString(), headers);
var response = restTemplate.exchange(requestUrl.toString(), HttpMethod.POST, requestEntity, String.class);
System.out.println(response);
var requestBody = new JSONObject();
requestBody.put("firstName", "Имя");
requestBody.put("lastName", "Фамилия");
requestBody.put("description", "описание профиля");
var requestUrl = new StringBuilder();
requestUrl
.append({{apiUrl}})
.append("/waInstance").append({{idInstance}})
.append("/setAccountSettings/")
.append({{apiTokenInstance}});
var response = Unirest.post(requestUrl.toString())
.header("Content-Type", "application/json")
.body(requestBody)
.asString();
System.out.println(response);
Sub SetAccountSettings()
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}}/setAccountSettings/{{apiTokenInstance}}"
RequestBody = "{""firstName"":""Имя"",""lastName"":""Фамилия"",""description"":""описание профиля""}"
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 setAccountSettings;
{$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 + '/setAccountSettings/' + API_TOKEN_INSTANCE;
HttpClient := TNetHTTPClient.Create(nil);
RequestBody := TStringStream.Create('{ "firstName": "Имя", "lastName": "Фамилия", "description": "описание профиля"}', 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.