Всем привет!
Не уверен, в какую категорию это лучше поместить, так что не стесняйтесь переместить. Сначала спасибо за помощь с Python-скриптом, который делает то же самое, что и скрипт на Node.js, который я сейчас пишу
. Я пытаюсь сделать API-запрос для выполнения запроса в Data Explorer, получить ответ и просто отобразить число, которое я получаю из него. Мой код на Python работает. Вот он:
# Импорт
import requests
import json
# Переменные окружения
ENDPOINT = 'https://community.myCompanyName.com/admin/plugins/explorer/queries/73/run'
API_KEY = '<api_key>'
API_USERNAME = '<my_username>'
# Основные функции
def send_request(endpoint):
headers = {'Content-Type': 'multipart/form-data', 'Api-Key': API_KEY, 'Api-Username': API_USERNAME}
request = requests.post(url=endpoint, headers=headers)
print("Статус-код запроса: {}".format(request.status_code))
# Необработанный ответ API
response = json.loads(request.text)
response_columns = response["columns"]
response_rows = response["rows"]
new_users = response_rows[0][0]
active_users = response_rows[0][1]
new_topics = response_rows[0][2]
employees_replies = response_rows[0][4]
external_users_replies = response_rows[0][3] - response_rows[0][4]
response_text = "🤖 Статистика Discourse за последний месяц\nНовые пользователи: {}\nАктивные пользователи: {}\nНовые темы: {}\nОтветы сотрудников: {}\nОтветы внешних пользователей: {}".format(new_users, active_users, new_topics, employees_replies, external_users_replies)
return response_text
processed_response = send_request(ENDPOINT)
Я попытался перенести это на Node.js, но получаю статус-код 301 — “Moved Permanently”, и кажется, что я делаю ровно то же самое, что и мой код на Python. Вот он:
const http = require('http');
const options = {
hostname: 'community.myCompanyNamee.com',
path: '/admin/plugins/explorer/queries/73/run',
method: 'POST',
headers: {
'Content-Type': 'multipart/form-data',
'Api-Key': <api_key>,
'Api-Username': <my_username>
}
};
var response = 1;
const req = http.request(options, (res) => {
console.log(`statusCode: ${res.statusCode}`);
response = res;
res.on('data', (d) => {
process.stdout.write(d);
});
});
req.on('error', (error) => {
console.error(error);
});
req.end();
var parsed_response = JSON.parse(response);
У меня нет опыта в JS, так что, если кто-то сможет взглянуть на это, буду очень благодарен ![]()