مرحباً بالجميع!
لست متأكداً من التصنيف الصحيح لها، فلا تترددوا في إعادة تصنيفها. بدايةً، شكراً على المساعدة مع سكريبت بايثون الذي يقوم بنفس المهمة مثل السكريبت في Node الذي أكتبه حالياً
. لذا، أحاول إرسال طلب API لتنفيذ استعلام Data Explorer، واستقبال الاستجابة، ثم عرض الرقم الذي أحصل عليه ببساطة. بينما يعمل كود بايثون الخاص بي، وهو هنا:
# Imports
import requests
import json
# Environment Variables
ENDPOINT = 'https://community.myCompanyName.com/admin/plugins/explorer/queries/73/run'
API_KEY = '<api_key>'
API_USERNAME = '<my_username'
# Core Functions
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("Request Status Code: {}".format(request.status_code))
# Unprocessed API request response
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 Last Month Stats\nNew Users: {}\nActive Users: {}\nNew Topics: {}\nEmployees Replies: {}\nExternal Users Replies: {}".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”، ويبدو أنه يفعل بالضبط نفس ما يفعله كود بايثون الخاص بي. وهو هنا:
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، لذا إذا كان بإمكان أي شخص إلقاء نظرة عليه، فسيكون ذلك رائعاً ![]()