گیم روت
API و توسعه‌دهندگان

ویرایش اطلاعات سرور

با کلید سرور و دسترسی profile:write می‌توانید فیلدهای متنی صفحه سرور را از سیستم خودتان به‌روز کنید؛ مثلاً توضیح کوتاه را با رویداد هفته عوض کنید.

متن
PATCH /servers/{server}/profile

پیش‌نیازها#

  • کلید باید برای همین سرور ساخته شده باشد (کلید حساب خطای KEY_NOT_SERVER_BOUND می‌گیرد).
  • سازنده کلید باید در تیم مجوز «ویرایش اطلاعات سرور» (EDIT_PROFILE) داشته باشد.
  • درخواست از مرورگر پذیرفته نمی‌شود؛ از سرور خودتان بفرستید.

فیلدهای قابل ویرایش#

همه فیلدها اختیاری‌اند و فقط فیلدهای فرستاده‌شده تغییر می‌کنند. برای فیلدهای nullable، مقدار null آن را پاک می‌کند.

فیلدقواعد
name۲ تا ۶۰ کاراکتر
shortDescriptionتا ۱۶۰ کاراکتر یا null
descriptionتوضیحات کامل به Markdown، تا ۲۰۰۰۰ کاراکتر یا null؛ HTML حذف می‌شود
displayAddressآدرس نمایشی به جای host:port، تا ۱۲۰ کاراکتر یا null
colorرنگ اصلی به شکل #RRGGBB یا null
socialsشیء با کلیدهای website، discord، telegram، instagram، youtube، aparat، rubika (هرکدام تا ۲۰۰ کاراکتر)؛ کل شیء جایگزین می‌شود و کلیدهای خالی حذف می‌شوند
tagsحداکثر ۸ برچسب، هرکدام تا ۲۴ کاراکتر؛ کل فهرست جایگزین می‌شود و تکراری‌ها یکی می‌شوند
seoTitleتا ۷۰ کاراکتر یا null
seoDescriptionتا ۱۷۰ کاراکتر یا null

این موارد فقط از پنل تغییر می‌کنند: لوگو، بنر و پس‌زمینه (نیاز به بارگذاری فایل دارند)، گالری و ویدیوها، نحوه بررسی نظرات، آدرس و پورت اتصال، تیم و نقش‌ها، و تنظیمات مالکیت.

نمونه#

Shell
curl -X PATCH "https://gameroute.ir/api/v1/servers/iran-craft/profile" \
  -H "Authorization: Bearer $GAMEROUTE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"shortDescription":"سروایول، اسکای‌بلاک و رویداد هفتگی","tags":["survival","skyblock","event"]}'
JSON
{ "changed": ["shortDescription", "tags"] }

changed فهرست فیلدهایی است که مقدارشان واقعاً عوض شد. اگر همان مقدار قبلی را بفرستید، فهرست خالی برمی‌گردد و چیزی ثبت نمی‌شود.

Python
import os
import requests

res = requests.patch(
    "https://gameroute.ir/api/v1/servers/iran-craft/profile",
    headers={"Authorization": f"Bearer {os.environ['GAMEROUTE_API_KEY']}"},
    json={"socials": {"discord": "https://discord.gg/irancraft", "telegram": "https://t.me/irancraft"}},
    timeout=10,
)
res.raise_for_status()
print(res.json()["changed"])

همه تغییرها با مقدار قبلی و جدید در گزارش فعالیت سرور، به نام سازنده کلید ثبت می‌شوند. اطلاعات سرور باید طبق قوانین درست و غیرگمراه‌کننده باشد.