aKuu
Asistan
- Katılım
- 22 Ağustos 2024
- Mesajlar
- 185
- Reaksiyon puanı
- 41
- Puanları
- 28
- Yaş
- 35
bu yazılım (GitHub - lazenes/XenforoDiscordBot: Xenforo 2 için Discord Botu Öne çıkan konular botu) adlı bir açık kaynak projesidir. amacı, bir xenforo forum sistemini discord ile entegre etmek, yani kullanıcıların forumdaki üyeliklerini doğrulamalarını sağlayarak, belirli discord rollerini almalarına olanak tanımaktır. kullanıcılar, xenforo sitelerindeki hesaplarıyla eşleştirme yaparak doğrulama gerçekleştirir ve bu işlem sonrası discord sunucusunda özel bir role sahip olabilirler. bu, forum yönetimi ile topluluk etkileşimini artırmak ve sahte hesaplara karşı güvenlik sağlamak için kullanılır.
özellikleri:
- discord botu olarak çalışır.
- kullanıcılar, xenforo hesabı ile bağlantı kurarak doğrulama yapabilir.
- doğrulama başarılı olursa discord'da kullanıcıya özel bir rol atanabilir.
- xenforo ve discord botu arasında bir api bağlantısı üzerinden veri alışverişi yapılır.
gereksinimler:
- discord bot token
- xenforo forumuna erişim ve admin api yetkisi
- node.js yüklü bir sistem
- `.env` dosyasına botun bilgileri girilmeli
şimdi tüm proje dosyalarını inceleyip, tüm kodları ve açıklamalarıyla birlikte anlatmaya geçeyim.
1. ".env.example" dosyası
bu dosyada gerekli tüm ayarlar yer alır. .env ismiyle kopyalanıp düzenlenmelidir. bilgiler:
-
-
-
-
-
-
2. `index.js`
bu kod ne yapar?
- bot başlatılırken slash komutları (`/verify`) discord sunucusuna eklenir.
- kullanıcı `/verify username` komutunu yazdığında:
- girilen xenforo kullanıcı adıyla api üzerinden sorgulama yapılır.
- eğer kullanıcı bulunursa, kullanıcıya belirlenen rol atanır.
- kullanıcıya geri bildirim verilir.
nasıl kurulur?
1.
2. projeyi indir:
3. bağımlılıkları yükle:
4. `.env` dosyasını oluştur ve bilgilerle doldur:
5. botu başlat:
özetle:
- yazılım, xenforo forum üyeleri ile discord kullanıcılarını eşleştirerek güvenli bir doğrulama sistemi sağlar.
- bu sistem sayesinde sadece doğrulanmış forum üyeleri discord’da özel roller alabilir.
- basit bir yapıdadır ve sadece `verify` komutu üzerinden çalışır.
- geliştirmeye açık bir projedir; örneğin otomatik bağlantı linki üretme gibi yeni özellikler eklenebilir.
~akuu
özellikleri:
- discord botu olarak çalışır.
- kullanıcılar, xenforo hesabı ile bağlantı kurarak doğrulama yapabilir.
- doğrulama başarılı olursa discord'da kullanıcıya özel bir rol atanabilir.
- xenforo ve discord botu arasında bir api bağlantısı üzerinden veri alışverişi yapılır.
gereksinimler:
- discord bot token
- xenforo forumuna erişim ve admin api yetkisi
- node.js yüklü bir sistem
- `.env` dosyasına botun bilgileri girilmeli
şimdi tüm proje dosyalarını inceleyip, tüm kodları ve açıklamalarıyla birlikte anlatmaya geçeyim.
1. ".env.example" dosyası
Kod:
env
DISCORD_TOKEN=your_discord_bot_token
DISCORD_CLIENT_ID=your_discord_client_id
DISCORD_GUILD_ID=your_discord_server_id
XF_API_KEY=your_xenforo_api_key
XF_API_URL=https://yourforum.com/api
ROLE_ID=role_to_assign_after_verification
bu dosyada gerekli tüm ayarlar yer alır. .env ismiyle kopyalanıp düzenlenmelidir. bilgiler:
-
discord_token
: botun token'ı-
discord_client_id
: botun client id’si-
discord_guild_id
: hangi sunucuda çalışacaksa o sunucunun id’si-
xf_api_key
: xenforo admin api anahtarı-
xf_api_url
: xenforo sitenizin `/api` ile biten tam url’si-
role_id
: doğrulama sonrası verilecek discord rolünün id’si2. `index.js`
Kod:
javascript
require('dotenv').config();
const { Client, GatewayIntentBits, SlashCommandBuilder, Routes } = require('discord.js');
const { REST } = require('@discordjs/rest');
const axios = require('axios');
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
const commands = [
new SlashCommandBuilder()
.setName('verify')
.setDescription('xenforo kullanıcı adı ile doğrulama yap')
.addStringOption(option =>
option.setName('username')
.setDescription('xenforo kullanıcı adınızı girin')
.setRequired(true))
].map(command => command.toJSON());
const rest = new REST({ version: '10' }).setToken(process.env.DISCORD_TOKEN);
(async () => {
try {
console.log('slash komutları yükleniyor...');
await rest.put(
Routes.applicationGuildCommands(process.env.DISCORD_CLIENT_ID, process.env.DISCORD_GUILD_ID),
{ body: commands },
);
console.log('komutlar başarıyla yüklendi.');
} catch (error) {
console.error(error);
}
})();
client.on('ready', () => {
console.log(`${client.user.tag} olarak giriş yapıldı`);
});
client.on('interactionCreate', async interaction => {
if (!interaction.isChatInputCommand()) return;
if (interaction.commandName === 'verify') {
const username = interaction.options.getString('username');
try {
const response = await axios.get(`${process.env.XF_API_URL}/users/****-name`, {
params: { username },
headers: { 'XF-Api-Key': process.env.XF_API_KEY }
});
if (response.data && response.data.user) {
const role = interaction.guild.roles.cache.get(process.env.ROLE_ID);
const member = await interaction.guild.members.fetch(interaction.user.id);
await member.roles.add(role);
await interaction.reply(`doğrulama başarılı. ${username} adlı kullanıcı ile eşleştirildi.`);
} else {
await interaction.reply('kullanıcı bulunamadı.');
}
} catch (error) {
console.error(error);
await interaction.reply('doğrulama sırasında bir hata oluştu.');
}
}
});
client.login(process.env.DISCORD_TOKEN);
bu kod ne yapar?
- bot başlatılırken slash komutları (`/verify`) discord sunucusuna eklenir.
- kullanıcı `/verify username` komutunu yazdığında:
- girilen xenforo kullanıcı adıyla api üzerinden sorgulama yapılır.
- eğer kullanıcı bulunursa, kullanıcıya belirlenen rol atanır.
- kullanıcıya geri bildirim verilir.
nasıl kurulur?
1.
node.js
kurulu olmalı.2. projeyi indir:
Kod:
bash
git clone https://github.com/lazenes/XenforoDiscordBot.git
cd XenforoDiscordBot
Kod:
bash
npm install
Kod:
bash
cp .env.example .env
nano .env
Kod:
bash
node index.js
özetle:
- yazılım, xenforo forum üyeleri ile discord kullanıcılarını eşleştirerek güvenli bir doğrulama sistemi sağlar.
- bu sistem sayesinde sadece doğrulanmış forum üyeleri discord’da özel roller alabilir.
- basit bir yapıdadır ve sadece `verify` komutu üzerinden çalışır.
- geliştirmeye açık bir projedir; örneğin otomatik bağlantı linki üretme gibi yeni özellikler eklenebilir.
~akuu