ساخت ربات دیسکورد با پایتون و استقرار روی سرور اوبونتو 20.04

دیسکورد (Discord) یک پلتفرم محبوب برای پیام‌رسانی متنی و صوتی است که توسط گیمرها، انجمن‌های متن‌باز، برگزارکنندگان کنفرانس‌ها و … استفاده می‌شود. دلیل محبوبیت آن امکاناتی نظیر چت صوتی فوق‌العاده، کانال‌های مختلف متنی و قابلیت توسعه با کمک دستیارهای خودکار (bot) می‌باشد.

در این راهنما یک ربات دیسکورد با زبان برنامه‌نویسی Python می‌سازید و آن را روی سرور Ubuntu 20.04 اجرا می‌کنید. برای این منظور از کتابخانه discord.py استفاده می‌شود.

توجه: در مستندات دیسکورد، گاهی به اتاق‌های چت/صوتی هم با عنوان Server و هم Guild اشاره می‌شود که منظور هر دو یکی است. در این آموزش از واژه Guild استفاده می‌شود.

ساخت و ثبت ربات در پرتال توسعه‌دهندگان دیسکورد

  1. وارد پرتال توسعه‌دهندگان دیسکورد شوید و روی دکمه New Application کلیک کنید. برنامه‌های دیسکورد امکان تعامل با API این پلتفرم را می‌دهند.
  2. یک نام برای برنامه انتخاب کرده و روی Create کلیک کنید (در این مثال، نام را SammySharkBot می‌گذاریم).
  3. پس از ساخت برنامه، می‌توانید یک آیکون برای ربات خود قرار دهید (اختیاری).
  4. اکنون باید یک bot به برنامه اضافه کنید. از منوی سمت چپ بخش Bot را انتخاب کرده و روی Add Bot بزنید و سپس تایید انجام دهید.
  5. صفحه جدیدی ظاهر می‌شود که توکن API ربات در آن قرار دارد. این توکن را بعدا نیاز دارید.
  6. از منوی تنظیمات به بخش OAuth2 بروید و فقط گزینه bot را در Scopes انتخاب کنید.
  7. دسترسی‌های لازم (مانند View Channels، Send Messages و Read Message History) را فعال کنید. سپس لینکی برای دعوت ربات تولید شده و می‌توانید آن را در مرورگر باز کنید.
  8. Guild مدنظر را انتخاب و Authorize کنید. ربات اکنون به سرور شما اضافه می‌شود.

راه‌اندازی محیط پایتون و نصب وابستگی‌ها

  1. ابتدا یک دایرکتوری برای محیط‌های مجازی خود بسازید:
    mkdir ~/.venvs
  2. یک محیط مجازی پایتون ایجاد کنید:
    python3 -m venv ~/.venvs/discord
  3. محیط مجازی را فعال کنید:
    source ~/.venvs/discord/bin/activate
  4. کتابخانه discord.py را نصب کنید:
    pip install discord.py
  5. لیست وابستگی‌ها را ذخیره کنید:
    pip freeze > requirements.txt

کدنویسی ربات دیسکورد با پایتون

  1. فایل bot.py را ساخته و این کد را وارد کنید:
    import os
    import random
    import discord
    
    TOKEN = os.getenv('DISCORD_TOKEN')
    GUILD = os.getenv('DISCORD_GUILD')
    
    intents = discord.Intents.default()
    client = discord.Client(intents=intents)
    
    @client.event
    async def on_ready():
        for guild in client.guilds:
            if guild.name == GUILD:
                break
        print(
            f'{client.user} has connected to the following guild:\n'
            f'{guild.name}(id: {guild.id})'
        )
    
    @client.event
    async def on_message(message):
        if message.author == client.user:
            return
    
        if 'flip a coin' in message.content.lower():
            result = random.choice(['Heads', 'Tails'])
            await message.channel.send(result)
    
    client.run(TOKEN)
    

دریافت توکن و نام Guild و اجرای ربات

  1. توکن ربات را از پرتال توسعه‌دهندگان دیسکورد دریافت و در محیط ذخیره کنید:
    export DISCORD_TOKEN='your-token-here'
  2. نام Guild را نیز ذخیره کنید:
    export DISCORD_GUILD='your-guild-name-here'
  3. برای اجرای برنامه:
    python bot.py

پس از اجرا، اگر خطایی نبود و همه چیز درست پیکربندی شده باشد، ربات به صورت آنلاین در سرور دیسکورد نمایش داده می‌شود. حالا با نوشتن عبارت flip a coin در کانال متنی، ربات شما با “Heads” یا “Tails” پاسخ می‌دهد.

استقرار ربات روی سرور Ubuntu 20.04 در ParminCloud

  1. کد و وابستگی‌های مورد نیاز را با دستور scp به سرور منتقل کنید:
    scp -r ~/project-path sammy@your_server_ip:~/
  2. به سرور ssh بزنید:
    ssh sammy@your_server_ip
  3. پکیج‌های مورد نیاز را نصب کنید:
    sudo apt update
    sudo apt install python3 python3-venv screen
  4. یک session جدید با Screen بسازید:
    screen -S discord_bot
  5. دایرکتوری محیط‌های مجازی و محیط مجازی جدید بسازید و فعال کنید:
    mkdir ~/.venvs
    python3 -m venv ~/.venvs/discord
    source ~/.venvs/discord/bin/activate
  6. وابستگی‌ها را نصب کنید:
    pip install -r requirements.txt
  7. متغیرهای محیطی را مقدار دهید:
    export DISCORD_TOKEN='your-token-here'
    export DISCORD_GUILD='your-guild-name-here'
  8. ربات را اجرا کنید:
    python bot.py
  9. برای خروج از Screen از کلیدهای ترکیبی Ctrl + A + D استفاده کنید و برای بازگشت به session:
    screen -r discord_bot

به این ترتیب، ربات شما در پس‌زمینه روی سرور ParminCloud اجرا شده و پاسخگو باقی خواهد ماند.

گام بعدی

اکنون شما یک ربات دیسکورد با پایتون ساخته‌اید که روی سرور ParminCloud اجرا شده است و به فرامین متنی مشخص پاسخ می‌دهد. برای آشنایی با قابلیت‌های بیشتر، به مستندات discord.py مراجعه کنید.

از همراهی شما با پارمین کلود متشکریم.

Click to rate this post!
[Total: 0 Average: 0]

نظرات کاربران

دیدگاهی بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *