Bring Einkaufsapp API

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:

api.getbring.com

Ruft man diese Seite auf, wird man mit folgendem Bild begrüßt:

Bring API Seite (noch in Arbeit)

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:

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?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

7 Kommentare
  1. Peter Leimbach sagt:

    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.

    • Finn Dohrn sagt:

      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!

  2. Oliver Stephan sagt:

    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

  3. Robin Wachter sagt:

    Wann denkst du kommt diese API?

    • Finn Dohrn sagt:

      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

      • Finn Dohrn sagt:

        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