Bring! ist meiner Meinung nach eine der besten Einkaufslisten Apps die es auf dem Markt gibt und dazu noch kostenlos. Bisher konnte sie nur mit ausgewählten Diensten sprechen, wie Alexa oder Google. Doch sie bekommt eine API. Dadurch kann jeder etwas für Bring programmieren.
Seit langem schon, schreiben wir keine analoge Einkaufsliste mehr, da dies nicht nur langfristig mehr der Umwelt schadet, sondern weil es schlichtweg viel umständlicher ist, als eine digitale Einkaufsliste. Daher sind wir auf die bring! App gestoßen und nutzen sie schon seit einiger Zeit auch mit unserer Alexa um Lebensmittel und Drogerieprodukte für den nächsten Einkaufs zu speichern.
In der App kann Einkaufsgruppen bilden und verschiedene Einkaufslisten erstellen. Über den Alexa Skill kann man neue Artikel per Sprache hinzufügen – praktisch, wenn man gerade kein Handy zur Hand hat. Beim einkaufen benutze ich dann meine Smartwatch um die Punkte abzuhaken. Bezahlen kann ich damit auch gleich. Ein Handy oder eine Liste in der Hand ist also garnicht notwendig.
bring! API
Und diese bring Einkauf-App bekommt nun eine API, die es mir ermöglicht, noch viel mehr zu automatisieren. Zum Beispiel die notwendigen Lebensmittel unseres erstellen Essensplan automatisch zu der Einkaufsliste hinzuzufügen. Dafür muss ich nur aus unserem digitalen Kochbuch, wir verwenden dafür Tandoor Recipes, die benötigten Lebensmittel laden und sie Richtung bring Einkaufs-App schieben.
💡 Was ist eine API?
Ein API (engl. application programming interface) ist eine programmierbare Schnittstelle, dies es einem ermöglicht, mit einem System zu interagieren. Zum Beispiel um etwas aus einem anderen System heraus zu verändern oder neu anzulegen.
Leider gibt es die API, Stand heute 12.03.2021, nicht. Und auch die FAQ Seite der offiziellen Seite spricht davon, dass es keine API gibt (stimmt ja auch). Nach regelmäßiger Recherche bin ich aber auf diese Adresse von der offiziellen getbring.com bring Einkaufs-App gestoßen:
Ruft man diese Seite auf, wird man mit folgendem Bild begrüßt:
Diese Seite und vor allem das Soon gibt Hoffnung auf eine baldige API für die bring Einkaufsapp. Denn eine solche Subdomain, ist sehr typisch für die Verwendung einer API.
Inoffizielle bring API
Auch wenn die offizielle API noch nicht existiert, gibt es verschiedene Bibliotheken, bei denen die API jetzt schon funktioniert – beides von deutschen Entwicklern:
- NodeJS und JavaScript: bring-shopping von foxriver76 (Getestet!)
- PHP: bring-api von helvete003
Für die NodeJS Variante habe ich das ganze auch verprobt, auch wenn es theoretisch für alle Programmiersprachen verwendbar wäre. Der entscheidende Punkt ist der herausgefundene API Schlüssel, den die Entwickler extrahiert haben.
Um die nodejs Variante zu nutzen, braucht man npm
und natürlich node
. Um nun die inoffizielle bring API zu nutzen, muss man einfach die Bibliothek installieren:
npm install bring-shopping
Dann muss man nur noch die E-Mails und das Passwort des bring Accounts hinterlegen. Ein einfaches Programm, dass eine Ananas mit dem Wert 4 hinzufügt, sieht so aus:
const bringApi = require('bring-shopping');
main();
async function main () {
// provide user and email to login
const bring = new bringApi({mail: `MEINE-BRING@E-MAIL.de`, password: `PASSWORD`});
// login to get your uuid and Bearer token
try { await bring.login(); } catch (e) { console.error(`Error on Login: ${e.message}`);}
const listUuid = lists['lists'][0]['listUuid']
// get items of a list by its list uuid
const items = await bring.getItems(listUuid);
// add Ananas with 4 to list
await bring.saveItem(listUuid, 'Ananas', '4')
}
Code-Sprache: JavaScript (javascript)
Insgesamt kann die API folgende Sachen machen, die man auch in dem GitHub Repo von foxriver nachlesen kann:
loadLists() -> listUUID
getItems(listUUID)
getItemsDetails(listUUID)
saveItem(listUUID, itemName: str, specificaiton: str)
moveToRecentList(listUUID, itemName)
getAllUsersFromList(listUUID)
Mit dieser inoffiziellen API kann man schon man unfassbar viel machen und funktioniert auch!
Mögliche Szenarien
Welche möglichen Szenrien könnte man dann mit dieser API umsetzen (auch ohne Programmierkenntnisse)? Da fallen mir folgende Dinge ein:
- Der Automatisierungsdienst IFTTT könnte einen Bring Dienst hinzufügen, um automatisiert Aktionen auszulösen – zum Beispiel wenn man eine E-Mail an eine Adresse schreibt und er die Inhalte pro Zeile in die Bring Einkaufsapp hinzufügt.
- Man könnte auch Lebensmittel und Drogerieprodukte, die man regelmäßig braucht per API Schnittstelle an das System schicken. z.B. Toilettenpapier oder Milch.
- Oder man verbindet ein digitales Kochbuch und Essensplan mit dem System und die notwendigen Zutaten an das System zu schicken.
Wir werden wohl jeden dieser Szenrarien nutzen und umsetzen, um unser Komfort zu erhöhen und weniger per Hand machen zu machen. Denn dafür können die Maschinen hoffentlich über die API Schnittstelle mit der bring Einkaufsapp Maschine reden.
Wie organisiert ihr euch mit dem Einkauf? Der klassische analoge Weg oder doch noch einen Anderen?
Das „soon“ steht da schon seit über 5 Jahren 😅
Zum abstimmen der Einkaufsliste nehmen wir zu dritt die Bring App, wobei viel über die Alexa Integration geht, was beim Kochen einfach herrlich easy nebenbei geht.
Jetzt bin ich auf grocy gestoßen, was auch recht interessant ist. Es handelt sich dabei um ein ERP, mit dem man den Bestand verwalten kann und ja auch Einkaufslisten erstellen kann. Mit Docker kann man es sehr schnell und einfach deployen. https://grocy.info/de
Im Frontend ist Bring top – insbesondere mit der Alexa App. Im Backend hat Bring nichts und ist grocy ziemlich interessant.
Dazwischen fehlt die Integration. Ob man Backend aber eine so hohe Verwaltung braucht oder es etwas over-sized ist, ist halt die Frage.
Moin Peter!
Dann seid ihr ja schon mal ähnlich wie ihr. Wir nutzen auch einen Sprachassistenten für bring! Sehr praktisch. ;-) Das mit dem ERP habe ich auch schon mal überlegt. Meine Frau hätte mich dann aber rausgeschmissen, weil ich es übertreibe. ;) Ich schaue es mir aber dennoch gerne an. Danke für den Tipp!
Moin Finn,
klickst du hier:
https://www.getbring.com/de/integration-prufen
Da gibt es auch den Link zum Developer Guide :-D
Viele Grüße Oliver
Guter Hinweis. :) Glaube den gibt es noch nicht so lange. Und wirklich eine API ist das ja leider auch nicht. Dennoch sehr spannend! Danke! Viele Grüße Finn
Wann denkst du kommt diese API?
Der letzte Kommentar auf Twitter dazu (von 2013) war, dass es keine API geben wird. Das Web Archive (Wayback) findet die Seite mit dem Inhalt seit Anfang 2017 genau so.
Seit neuestem gibt es ja auch die Bring Web Seite (BETA) von denen: https://web.getbring.com
Das ganze macht also Hoffnung, dass wird doch noch die API demnächst erhalten. Geduld müssen wir wohl mit bringen.
VG Finn
Moin Robin,
inzwischen habe ich eine inoffizielle API gefunden, die Open Source ist und bei mir via nodejs gut funktioniert. Vielleicht wäre das etwas für dich – vorübergehend. Scheint recht populär zu sein! ;-)
VG Finn