شرح Viona API

دليل شامل لاستخدام واجهة برمجة التطبيقات الخاصة بـ Viona

شرح Api المتاحة

POST طلب خدمة جديدة

إنشاء طلب خدمة جديد باستخدام API

https://viona.website/buy-service-with-api
المعامل النوع الوصف
api_key string مفتاح API الخاص بك مطلوب
serviceId string معرف الخدمة المطلوبة مطلوب
link string رابط الخدمة المطلوبة مطلوب
quantity number كمية الخدمة المطلوبة مطلوب

مثال على الطلب:

fetch('https://viona.website/buy-service-with-api', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({
        api_key: 'your_api_key_here',
        serviceId: '1234',
        link: 'https://www.example.com/post',
        quantity: 1000
    })
})

الاستجابة الناجحة:

{
    "success": true,
    "message": "✅ تم تنفيذ الطلب بنجاح",
    "order": {
        "orderId": "123456",
        "serviceName": "اسم الخدمة",
        "serviceId": "1234",
        "serviceLink": "https://www.example.com/post",
        "servicePrice": 100,
        "status": "pending",
        "createdAt": "2024-12-20T12:00:00.000Z"
    }
}

GET قائمة الخدمات

الحصول على قائمة بجميع الخدمات المتاحة

https://viona.website/all-services

مثال على الطلب:

fetch('https://viona.website/all-services')

الاستجابة الناجحة:

{
    "services": {
        "انستغرام": [
            {
                "id": "1234",
                "name": "متابعين انستغرام",
                "min": 100,
                "max": 10000,
                "price": 10
            }
        ],
        "يوتيوب": [
            {
                "id": "5678",
                "name": "مشاهدات يوتيوب",
                "min": 1000,
                "max": 100000,
                "price": 20
            }
        ]
    }
}

DISCORD دمج بوت ديسكورد

مثال على كيفية دمج API مع بوت ديسكورد للحصول على الخدمات وتنفيذ الطلبات

كود استدعاء قائمة الخدمات:

client.on('messageCreate', async (message) => {
    if (message.author.bot || message.content !== '!services') return;

    try {
        const { data: { services } } = await axios.get('https://viona.website/all-services');
        const options = Object.values(services).flat().map(service => ({
            label: service.name.substring(0, 100),
            value: service.id,
        }));

        const row = new MessageActionRow().addComponents(
            new MessageSelectMenu()
                .setCustomId('select_service')
                .setPlaceholder('اختر خدمة')
                .addOptions(options.slice(0, 25))
        );

        await message.reply({ components: [row] });
    } catch (error) {
        console.error('❌ خطأ ', error);
        await message.reply('❌');
    }
});

معالجة اختيار الخدمة وتنفيذ الطلب:

client.on('interactionCreate', async (interaction) => {
    if (!interaction.isSelectMenu() || interaction.customId !== 'select_service') return;

    try {
        const { data: { services } } = await axios.get('https://viona.website/all-services');
        const selectedId = interaction.values[0];
        const allServices = Object.values(services).flat();
        const service = allServices.find(s => s.id === selectedId);
        await interaction.deferReply({});
        
        if (!service) {
            return await interaction.editReply({ content: '❌ الخدمه مش موجودة', ephemeral: true });
        }

        const requestBody = {
            api_key: 'your_api_key_here',
            serviceId: service.id,
            link: 'https://www.example.com/post',
            quantity: 1000
        };

        const response = await fetch('https://viona.website/buy-service-with-api', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify(requestBody)
        });

        if (response.ok) {
            const responseData = await response.json();
            await interaction.editReply({
                content: `✅ **تم تنفيذ الطلب بنجاح!**\n\nرقم الطلب : ${responseData.order.orderId}`
            });
        } else {
            const errorData = await response.json();
            await interaction.editReply({ 
                content: `❌ فشل تنفيذ الطلب: ${errorData.message || 'خطأ غير معروف'}`, 
                ephemeral: true 
            });
        }
    } catch (error) {
        console.error('❌خطأ', error);
        await interaction.editReply({ content: '❌', ephemeral: true });
    }
});