Koyebで一人で複数アカウントを持ったら叱られた

こんにちは、ナナオです。 先日遊びで作ったkoyebのアカウントとは別にkoyebのアカウントを作ってデプロイしたら、この画面になりました。 We cannot offer you access to Koyeb Your account matches patterns often associated with violations of our Terms of Service While we cannot provide details about the reason(s) triggering this behavior, we have determined that providing access to Koyeb is not possible If you believe this is a bug, you can verify your identity 訳文は以下の通り。 Koyebへのアクセスを提供できません あなたのアカウントは、当社の利用規約に違反することが多いパターンと一致しています。 この動作を引き起こした理由の詳細についてはお答えできませんが、Koyebへのアクセスを提供することは不可能であると判断いたしました。 これがバグ(誤判定)だと思われる場合は、本人確認を行うことができます。 私の場合、一人で複数のアカウントを作って、無料プランで複数デプロイしようとしたこが原因ではないか、という結論に落ち着きました。 ...

2026年1月18日 · にあえん

Koyebで無料のDiscord Botを構築してみた

こんにちは、ナナオです。 サーバー維持費、気になりますよね。 今回は無料で使えるサービスでDiscordのBotを作っていきたいと思います。 初期設定 まずは土台作りとして、Discordとボットのコードを実装していきます。 Discord側の初期設定 以下のURLからデベロッパーコンソールにアクセスします。 Discord Developer Portal ログインすると以下の画面になります。 「New Application」をクリックして新しくアプリケーションを作成します。 作成したアプリケーションのBotタブに行き、Reset Tokenでトークンを発行し、コピーしておきます。 Message Content Intentもオンにしておきます。 これをしないとBotがメッセージを読むことができないです。 ボットをサーバーに招待します。 InstallationタブからGuild InstallのScopesにbotを追加し、権限を設定します。(ここ重要) 今回は管理者権限にしました。 Install Linkをコピーし、ブラウザに貼り付けます。 インストールに成功すると、以下のようなウィンドウが表示されます。 サーバー側にも通知が飛びます。 Pythonの実装 コードを書いていきましょう。 パッケージをUVで作成します。 uv init --package discord-bot-playground giboでignorefileに追記します。 gibo dump Python >> .gitignore .envファイルを作成し、先ほど作成したDiscord botのトークンを貼り付けておきます。 DISCORD_BOT_TOKEN="xxx..." 必要なライブラリを追加します。 uv add discord.py dotenv コードを書きます。 ここでは簡単なコマンド実行をしていきます。 デコレーターでめちゃくちゃ簡単に実装できます。 import os from dotenv import load_dotenv import discord load_dotenv() DISCORD_BOT_TOKEN = os.environ.get("DISCORD_BOT_TOKEN") DISCORD_GUILD_ID = int(os.environ.get("DISCORD_GUILD_ID")) guild_id = discord.Object(id=DISCORD_GUILD_ID) intents = discord.Intents.default() client = discord.Client(intents=intents) tree = discord.app_commands.CommandTree(client) @client.event async def on_ready(): await tree.sync(guild=guild_id) @tree.command() async def hello(interaction: discord.Interaction): """Says hello!""" await interaction.response.send_message(f"Hi, {interaction.user.mention}") client.run(DISCORD_BOT_TOKEN) ポイントとしてはon_readyでsyncする際にギルドIDをしているところです。 ...

2026年1月17日 · にあえん