Как передать запрос API python
Всем добрый день, есть задача добавить пользователя в Геткурс через API Инфа с геткурса Импорт пользователя находится по адресу:
https://{account_name}.getcourse.ru/pl/api/users
Для добавления пользователя необходимо передать действие add, секретный ключ и параметры добавляемого пользователя:
curl -i -H "Accept: application/json; q=1.0, */*; q=0.1"
"https://{account_name}.getcourse.ru/pl/api/users" -d "action=add&key={secret_key}&рarams={params}"
Параметры пользователя:
base64_encode
{
"user":{
"email":"email",
"phone":"телефон",
"first_name":"имя",
"last_name":"фамилия",
"city":"город",
"country":"страна",
"group_name":[ // для добавления пользователя в группы
"Группа1", // простое добавление в групп
["Группа2", "2018-08-01 21:21"], // добавление в группу с указанием произвольного момента
["Группа4", "2018-08-02"]
],
"addfields":{"Доп.поле1":"значение","Доп.поле2":"значение"} // для добавления дополнительных полей пользователя
},
"system":{
"refresh_if_exists":0, // обновлять ли существующего пользователя 1/0 да/нет
"partner_email":"email партнера (для пользователя)*"
},
"session":{
"utm_source":"",
"utm_medium":"",
"utm_content":"",
"utm_campaign":"",
"utm_group":"",
"gcpc":"",
"gcao":"",
"referer":""
}
}
Пытался сделать так:
import base64
import requests
import json
account_name = "xxxxxxxxxxxxxxx"
BASE_URL = f"https://{account_name}.getcourse.ru/pl/api/account/users"
user = {'email' : 'testapi@test.pro',
'phone': '+333333333333'}
s = json.dumps(user)
user=base64.b64encode(s.encode('utf-8'))
print(s)
print(user)
params = {'action':'add','key':'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX','params':user}
response = requests.post(BASE_URL, params=params)
В результате пользователь не создается. Действие передается как параметр action, POST-запроса. Мне не совсем понятно как передать action, буду признателен за любую помощь. Параметры для действия передаются в формате JSON, закодированного в base64 в параметре params POST-запроса.
Источник: Stack Overflow на русском