A Discord Webhook Application with the Coinbase API

Overview



Ein PHP-Skript um einen Kryptowährungspreis
in Discord darzustellen.



Installation Windows

Voraussetzungen


Docker Container

Nach dem Download und entzippen muss man den Docker-Container ausführen installieren und starten. Dazu öffnest du eine Konsole/Terminal deine Wahl.

Navigiere dann in den Projektordner und gib folgenden Befehl ein:

docker-compose -f "docker-compose.yml" up -d --build

Die Installation sollte automatisch beginnen.

Wenn die Installation erfolgreich abgeschlossen wurde, kannst du im Terminal diesen Befehl eingeben:

docker exec -it phpdev /bin/bash

Du solltest dich dann in der Linux Bash im Ordner /opt/code landen. Zuletzt musst du nur noch

php index.php

eingeben. Dann wird die Applikation samt Setup ausgeführt. Wie du durch das Setup navigierst, findest du hier.

Installation Linux

Voraussetzungen

Ausführung

Um die Applikation in Linux zu starten, musst du erstmals in das Projektverzeichnis in der Shell navigieren. Dort gehst du in den Ordner code/ mit

cd code/

Folgend startest du nur noch die index.php Datei mit:

php index.php

Das war es bereits! Führe nun hier fort.

Allgemeines Setup

Rapid API Key

Für die Rapid API, die mit der Twelvedata API verknüpft ist, braucht man den RapidAPI Key. Dazu erstellst du dir einen Account. Nachdem navigierst du zu Pricing und musst dort erstmals den Account für den Plan auswählen. Dann abonnierst du den Basic Plan (dieser ist gratis). Nun sollte für dich der API-Key funktionieren, den du unter "Endpoints" findest. (Dieser ist mit X-RapidAPI-Key unter der Kategorie Exchanges beschriftet.)

Setup Discoin Applikation

Wenn das index.php gestartet wurde und die Datei .env noch nicht existiert, wird nach folgenden Fragen gefragt.

Bitte gib die Webhook URL ein: https://discord.com/api/webhooks/XXXXXXXXXXXXX/XXXXXXXXXXXXXXXXX

Hier bitten wir dich die URL des Discord Webhooks einzugeben.

Hoffentlich hast du bereits im Voraus deinen Rapid API Key generieren lassen und diesen bereits kopiert. Er sollte bei der nächsten Frage eingegeben werden, um Abfragen des Bitcoin Wertes zu machen.

Bitte gib den Rapid-API Key ein: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Wenn du den Webhook noch nie konfiguriert für einen Channel konfiguriert hast, musst du (falls vorhanden) die generierte .env Datei löschen und das Skript erneut ausführen. So werden alle Fragen erneut gefragt. Wichtig ist dabei diese Frage:

Wie lautet die MessageID der gesendeten Nachricht?: XXXXXXXXXXXXXXXXXX

Um die ID herauszufinden musst du den Developer Mode auf Discord aktiviert haben. Dann klickst du rechts, neben der Nachricht auf die Punkte und wählst Copy ID aus. Die ID wird dir dann direkt in das Clipboard gespeichert und du kannst mit Rechtsklick diese in die Konsole einfügen.

Währungen

Um die normale Währung zu ändern musst du nach dem Setup den Webhook mit CTRL + C stoppen und in .env die Werte dazu anpassen (JSON Wert "currency" und "cryptocurrency"). Dort gelten die ISO-4217 Währungskürzel. Für die Cryptowährungen gelten die bekanntesten. Leider gibt es hierfür keine Liste.

Was man ausserdem auch machen kann ist zwei normale Wärhungen miteinander vergleichen, wie zum Beispiel Euro (EUR) mit Schweizer Franken (CHF).


Nun sollte der Webhook im Hintergrund die Nachricht mit den Währungskursen solange aktualisieren, wie das Terminal/Konsole offen bleibt.

Viel Spass


Informationen zum Projekt

Projektidee mit Zusammenfassung

Dies ist das Projekt der Kalenderwoche 41 im ZLI in Zürich. Der Auftrag ist es etwas mit einer API zu machen und im Team zu arbeiten.

Unsere Projektidee ist einen Webhook auf Discord in einem Server zu erstellen, der alle paar Sekunden von der Coinbase API den bevorzugten Cryptowährungspreis (zum Beispiel Bitcoin) abruft und ausgibt. Der Webhook schickt bei der Ausführung einmal eine Nachricht mit einem sogennanten Discord Embed, das den aktuellen Preis mit eventuell einem Verlauf anzeigt. Der Preis sollte dann automatisch, solange die PHP Session bestehen (Konsole geöffnet) bleibt, jede 1-2 Minuten aktualisiert werden (indem die Nachricht editiert wird).

APIs

Wir möchten die Discord Webhook API für unser Projekt benutzen, die sehr gut dokumentiert und nicht all zu leicht ist. Dort können wir unsere Applikation (Coinbase API) mit Discord verknüpfen.

Um den zurzeitigen Preis der Währung zu bekommen wollten wir zuerst die Coinbase API benutzen, jedoch brauchte man dafür einen Token, der man nur mit einer gültigen ID bekommt, wenn man über 18 Jahre alt ist. Marc suchte dann kurz nach einer neuen. Die neue heisst Rapid API (funktioniert mit Twelvedata) und hat eine maximale Requestrate von 800/Tag, was ausreicht bei Einer Abfrage pro Zwei Minuten.

Docker Container

Um PHP einfacher benutzen zu können benutzen wir den Container von foxfabi. So ist nachher, wenn man das Projekt herunterlädt, gleich alles funktionstüchtig und auf der neusten Version.

SMART Ziele

  • Funktionierende Discord Webhook Applikation mit PHP das Nachrichten in einem Channel sendet und diese mit verschiedenen Intervals editiert bis Ende Woche erarbeiten.
  • Die Coinbase API mit der Discord Webhook Applikation verknüpfen.
  • Verstehen der Discord Webhook API.
  • Das Scrum Model anwenden.
  • Einen guten Teamgeist und Teamarbeit haben.

Teammitglieder und User Stories

  • Noah Geeler (API-1)
    • Als Entwickler dieses Projektes möchte ich ein funktionsfähiges Programm mit integrierten APIs erstellen.
    • Als Benutzer der Applikation möchte ich eine möglichst einfache Installation haben.
    • Als Betrachter des Projektes will ich eine gute Übersicht und Navigation besitzen.
  • Marc Willhelm (API-1)
    • Als Entwickler möchte ich ein möglichst "cleanes", vertsändliches Produkt abliefern, damit es jeder verstehen kann.
    • Als Benutzer möchte ich mühelos Updates über den Cryptomarkt haben, damit ich immer auf dem neusten Stand bleibe.

Team Kodex

  1. Ehrlichkeit hat hier oberste Priorität.
  2. Man steht zu seinen Fehlern.
  3. Sauber und sorgfältig arbeiten.
  4. Spass haben.
  5. Oft COMMITTEN.
You might also like...
PocketMine-MP To Discord Chat Logging.
PocketMine-MP To Discord Chat Logging.

Welcome To PocketCord PocketCord is a PocketMine-MP plugin designed to link discord and your PocketMine-MP Server with quick and easy setup! Installat

Minimalist PHP frame for Core-Library, for Developing PHP application that gives you the full control of your application.

LazyPHP lightweight Pre-Made Frame for Core-library Install Run the below command in your terminal $ composer create-project ryzen/lazyphp my-first-pr

This plugin can be embedded in PHP application to give the web application specific routes/href

Routes Plugin PHP This plugin can be embedded in PHP application to give the web application specific routes/href location and for entering specific/l

Implementation of an API application using the Phalcon Framework

phalcon-api Sample API using Phalcon Implementation of an API application using the Phalcon Framework https://phalcon.io Installation Clone the projec

PHP demo application showing how to access the Hubstaff Public API

Public API PHP Demo This repository contains a simple sample cli tool that shows off how to access the Hubstaff public api via PHP. The core access is

A Laravel Wrapper for the Binance API. Now easily connect and consume the Binance Public & Private API in your Laravel apps without any hassle.
A Laravel Wrapper for the Binance API. Now easily connect and consume the Binance Public & Private API in your Laravel apps without any hassle.

This package provides a Laravel Wrapper for the Binance API and allows you to easily communicate with it. Important Note This package is in early deve

Google Search Results PHP API via Serp Api

Google Search Results in PHP This Php API is meant to scrape and parse Google, Bing or Baidu results using SerpApi. The full documentation is availabl

The fastest way to make a powerful JSON:API compatible Rest API with Laravel.
The fastest way to make a powerful JSON:API compatible Rest API with Laravel.

The first fully customizable Laravel JSON:API builder. "CRUD" and protect your resources with 0 (zero) extra line of code. Installation You can instal

Code to accompany the YouTube video "Full PHP cURL API tutorial - how to use a REST API from PHP using cURL"

PHP cURL CRUD Example Example code to accompany this YouTube video. Note that the init_curl.php file contains a placeholder for an API key. DO NOT che

Releases(v1.1.2)
  • v1.1.2(Oct 19, 2021)

  • v1.1.1(Oct 15, 2021)

  • v1.1(Oct 15, 2021)

    Cleaned up code and added a chart to the embed. Everything should be done now!

    Full Changelog: https://github.com/Nevah5/discoin/compare/v1.0.1...v1.1

    Source code(tar.gz)
    Source code(zip)
  • v1.0.1(Oct 13, 2021)

  • v1.0(Oct 13, 2021)

  • b1.1(Oct 13, 2021)

  • b.1.2(Oct 13, 2021)

    This Version has a clean Setup-Guide now for easy installation. The Readme File is still in progress.

    Full Changelog: https://github.com/Nevah5/discoin/compare/b1.1...b.1.2

    Source code(tar.gz)
    Source code(zip)
  • b1.0(Oct 12, 2021)

    This Release is working fine, but isn't cleaned up yet. Clean Code, an Installation Guide and more will come tomorrow!

    Full Changelog: https://github.com/Nevah5/discoin/commits/b1.0

    Source code(tar.gz)
    Source code(zip)
Owner
Nevah
Nevah
An easy code to send messages on a discord text channel with webhook.

Status Webhook-Discord An easy code to send messages on a discord text channel with webhook. Don't forget to check the latest version of Webhook-Disco

Victor 1 Dec 3, 2021
[Virion] A library that helps you use Discord Webhook

DiscordHelper How to register Web Hook URL How to register Web Hook URL use NewThing\DiscordHelper\DiscordHelper; DiscordHelper::setURL($YourWebHookU

null 1 Dec 25, 2021
DiscordLookup | Get more out of Discord with Discord Lookup! Snowflake Decoder, Guild List with Stats, Invite Info and more...

DiscordLookup Get more out of Discord with Discord Lookup! Snowflake Decoder, Guild List with Stats, Invite Info and more... Website Getting Help Tool

Felix 69 Dec 23, 2022
Allow any Discord user to sign in to your website and save their discord user information for later use.

Simple Discord SSO ( Single Sign-On ) Requires at least: 5.0 Tested up to: 5.8.3 Stable tag: 1.0.2 Requires PHP: 7.4 License: GPLv2 or later License U

null 2 Oct 7, 2022
Laradeploy offers you to automate deployment using a GitHub webhook.

Introduction Laradeploy offers you to automate deployment using a GitHub webhook. Simple and fast just make a git push to GitHub deploy the new modifi

Gentrit Abazi 10 Feb 21, 2022
Provides simple interfaces to implement a webhook-based tweeting system

webhook-tweeter This package aims to provide simple interfaces to implement a webhook-based tweeting system. This can, for example, be used to tweet a

Ricardo Boss 2 May 7, 2022
Contact Form7 - KeepinCRM connector via Webhook

Contact Form7 - KeepinCRM connector Плагін для відправки даних з форм на Contact Form7 до KeepinCRM через Webhook. Встановлення Вивантажити плагін арх

null 1 Aug 11, 2022
Receiver is a drop-in webhook handling library for Laravel.

Receiver Receiver is a drop-in webhook handling library for Laravel. Webhooks are a powerful part of any API lifecycle. Receiver aims to make handling

Adam Campbell 270 Jan 6, 2023
This is a clone of Discord's homepage built using Wordpress.

Discord-UI-Clone Description This is a clone of Discord's homepage built using Wordpress, it is configured to run on the Pantheon platform. Live Demo

Abir Bouhriz Daidj 8 Aug 21, 2022
Alfred workflow to convert a Discord snowflake to time

Snowcord for Alfred Takes a Discord snowflake and converts it to a time (UTC, local and Unix timestamp). Also connects with Alfred-Whencord Download D

null 2 Jan 6, 2022