Erstellen Sie einen Discord-Bot, der einseitig mit Python benachrichtigt (nur Anfragen und JSON werden verwendet).

Inhalt

Wenn es darum geht, Zwietracht-Bots mit Python zu erstellen, scheint es ungefähr zwei Arten zu geben.

--Typ, der interaktiv funktioniert ――Es scheint praktisch zu sein, eine Bibliothek namens discord.py zu verwenden. In diesem Artikel nicht behandelt.

Webhook-URL abrufen

Für jeden Kanal ist eine Erfassung erforderlich. Sie können auf dieser Seite auf "Webhook-URL abrufen" verweisen. Optionseinstellungen können mit Code vorgenommen werden, sodass Sie ihn übergeben können.

Kurzfassung

Die einfachste Konfiguration ist wie folgt.

import requests, json


webhook_url  = 'Webhook-URL früher erhalten'
main_content = {'content': 'Zu sendender Text'}
headers      = {'Content-Type': 'application/json'}

response     = requests.post(webhook_url, json.dumps(main_content), headers=headers)

Erfolgreiche Übertragung! SS 2020-07-12 21.04.33.png

Das Aussehen des Bots

Das Aussehen des Bots kann im Code wie folgt definiert werden: Es scheint, dass die URL des Bildes erforderlich ist, um das Symbol festzulegen. Unten wird die URL des Twitter-Kontosymbols angegeben. Gibt es bei einer lokalen Bilddatei keine andere Wahl, als sie beim Abrufen der Webhook-URL festzulegen?

import requests, json


webhook_url  = 'Webhook-URL früher erhalten'
main_content = {
                   'username': 'Name',
                   'avatar_url': 'Bild URL',
                   'content': 'Text'
               }
headers      = {'Content-Type': 'application/json'}

response     = requests.post(webhook_url, json.dumps(main_content), headers=headers)

Erfolgreiche Übertragung! SS 2020-07-12 21.07.59.png

Ich möchte das Erscheinungsbild der Nachricht erläutern

Verwenden Sie Einbettungen. Weitere Informationen finden Sie hier (https://birdie0.github.io/discord-webhooks-guide/structure/embeds.html). Ein Beispiel ist unten angegeben.

import requests, json


webhook_url  = 'Webhook-URL früher erhalten'
embeds       = [
                   {
                       'description': 'Google-Seite',
                       'color': 15146762,
                       'image': {
                           'url': 'Bild URL'
                       }
                    }
               ]
main_content = {
                   'username': 'Name',
                   'avatar_url': 'Bild URL',
                   'content': 'Text',
                   'embeds': embeds
               }
headers      = {'Content-Type': 'application/json'}

response     = requests.post(webhook_url, json.dumps(main_content), headers=headers)

Es sieht aus wie das.

** Stellen Sie die Farbe des linken vertikalen Balkens mit ** Farbe ** in ** Einbettungen ** ** ein. Die Entsprechung zwischen Zahlen und Farben ist hier. Bewegen Sie die Leiste "Farbmischer", um die Farbe zu finden, die Sie anzeigen möchten, und geben Sie die Zahl rechts von "Dezimal:" ein.  SS 2020-07-12 21.27.14.png

Machen Sie es zu einer Funktion und verwenden Sie es wieder

Zum Beispiel sieht es so aus. Wenn Sie nur Text senden, geben Sie nur die Argumente "Kanal" und "Inhalt" an. Wenn Sie die Einbettung verwenden möchten, geben Sie die erforderlichen Informationen mit "emb" ein.

emb = {
          'description': 'Eingebetteter Text',
          'color': 'Farbe',
          'img_url': 'Bild URL',
          'content': 'Text'
      }
def send_discord_msg(channel, content, emb=0):
    webhook_dic     = {'channel 1': 'Webhook-URL für Kanal 1', 
                       'channel 2': 'Webhook-URL für Kanal 2'}
    webhook_url     = webhook_dic[channel]

    main_content    = {
        'username': 'Bot Name',
        'avatar_url': 'Symbol URL',
        'content': content
    }

    if emb != 0:
        color_dic = {
            'Farbe 1': 15146762,
            'Farbe 2': 49356,
        }
        embeds = [
            {
                'description': emb['description'],
                "color": color_dic[emb['color']],
                "image": {
                    "url": emb['img_url']
                },
            }
        ]
        main_content.update({'embeds': embeds})
        main_content['content'] = emb['content']

    headers = {'Content-Type': 'application/json'}
    try:
        res = requests.post(webhook_url, json.dumps(main_content), headers=headers)
    except Exception as e:
        print(e)

Recommended Posts

Erstellen Sie einen Discord-Bot, der einseitig mit Python benachrichtigt (nur Anfragen und JSON werden verwendet).
Erstellen Sie mit MeCab mit Discord einen Bot, der nur das Ergebnis der morphologischen Analyse zurückgibt
[LINE Messaging API] Erstellen Sie einen BOT, der eine Verbindung zu jemandem mit Python herstellt
Erstellen Sie einen BOT, der mit Discord registrierte Bilder wie Piktogramme aufrufen kann
Erstellen Sie mit Minette für Python einen LINE BOT
Erstellen Sie eine Seite, die unbegrenzt mit Python geladen wird
Schritte zum Erstellen eines Twitter-Bots mit Python
[Python] Verwenden Sie JSON mit Python
Wenn Sie einen Discord-Bot mit Python erstellen möchten, verwenden wir ein Framework
Ich habe versucht, LINE BOT mit Python und Heroku zu machen
Eine persönlich verwendete Vorlage zum Erstellen von Discord BOT in Python (Notizen)
Erstellen Sie ein Verzeichnis mit Python
Erstellen Sie einen Mastodon-Bot mit einer Funktion, die automatisch mit Python antwortet
Erstellen wir ein Skript, das sich bei Ideone.com in Python registriert.
Lassen Sie uns ein PRML-Diagramm mit Python, Numpy und matplotlib erstellen.
Verwenden Sie ein Makro, das beim Speichern von Python mit vscode ausgeführt wird
Erstellen Sie einen Twitter-BOT mit dem GoogleAppEngine SDK für Python
Erstellen Sie den Code, der in Python "A und vorgeben B" ausgibt
Tornado - Erstellen wir eine Web-API, die JSON problemlos mit JSON zurückgibt
Ich möchte einen Platzhalter verwenden, den ich mit Python entfernen möchte
[Python / Django] Erstellen Sie eine Web-API, die im JSON-Format antwortet
Erstellen Sie eine gestreifte Illusion mit Gammakorrektur für Python3 und openCV3
Erstellen Sie eine virtuelle Umgebung mit Python!
JSON-Codierung und -Decodierung mit Python
[AWS] Erstellen Sie mit CodeStar eine Python Lambda-Umgebung und führen Sie Hello World aus
Erstellen Sie einen Discord Bot, der Bilder suchen und einfügen kann
Ich habe in Python einen Discord-Bot erstellt, der übersetzt, wenn er reagiert
Erstellen Sie mit dem Python-Anforderungsmodul einen Datensatz mit Anhängen in KINTONE
Erstellen Sie eine Python3-Umgebung mit pyenv auf einem Mac und zeigen Sie NetworkX-Diagramme an
Erstellen Sie mit Python einen Entscheidungsbaum von 0 und verstehen Sie ihn (5. Information Entropy)
Ich habe einen Slack-Bot geschrieben, der Verzögerungsinformationen mit AWS Lambda benachrichtigt
[Python] Ein Programm, das Treppen mit # erstellt
Erstellen Sie mit Python + PIL ein Dummy-Image.
[Python] Erstellen Sie mit Anaconda eine virtuelle Umgebung
Erstellen wir mit Python eine kostenlose Gruppe
Ein Memo mit Python2.7 und Python3 in CentOS
Verwenden Sie PIL oder Pillow mit Cygwin Python
Erstellen und entschlüsseln Sie Caesar-Code mit Python
[Python] [LINE Bot] Erstellen Sie einen LINE Bot mit Papageienrückgabe
Lesen und Schreiben von JSON-Dateien mit Python
Erstellen Sie mit Python 3.4 einen Worthäufigkeitszähler
[Python] Erstellen Sie einen LineBot, der regelmäßig ausgeführt wird
Eine typisierte Welt, die mit Python beginnt
Erstellen Sie einen Bot, der Twitter-Trends verstärkt
Machen wir einen Twitter-Bot mit Python!
Verwenden Sie Python und MeCab mit Azure-Funktionen
Erstellen Sie eine Anwendung, die Formulare mithilfe von Python / Flask anstelle von DB eingibt, anzeigt und löscht.
Wortanzahl, die nur Wörter zählt, die mit einem Großbuchstaben in Python beginnen
Ich habe versucht, eine Klasse zu erstellen, mit der Json in Python problemlos serialisiert werden kann
Erstellen wir ein einfaches Empfangssystem mit dem serverlosen Python-Framework Chalice und Twilio
[Python] Ich habe einen LINE-Bot erstellt, der Gesichter erkennt und Mosaikverarbeitungen durchführt.
[Python] So erstellen Sie eine lokale Webserverumgebung mit SimpleHTTPServer und CGIHTTPServer
Erstellen Sie mit tkinter [Python] einen Rahmen mit transparentem Hintergrund.
Discord Bot Himbeere Pi Null mit Python [Hinweis]
Machen Sie Twitter Trend Bot mit Heroku + Python
Erstellen Sie eine App, die Schüler mit Python errät
Erstellen einer Python-Umgebung mit virtualenv und direnv
Lesen Sie JSON mit Python und geben Sie CSV aus