Inhaltsverzeichnis:

Der Uber-Button - Gunook
Der Uber-Button - Gunook

Video: Der Uber-Button - Gunook

Video: Der Uber-Button - Gunook
Video: ein Rad schlagen 2024, November
Anonim
Der Uber-Button
Der Uber-Button

Holen Sie sich eine Uber-Fahrt einfach per Knopfdruck!

Einführung

In diesem Tutorial verwenden wir den Sigfox-Netzwerklokalisierungsdienst (der vorerst eine Genauigkeit von maximal 1 km Radius angeben kann), um die nächste Position zu einer bestimmten Adresse zu ermitteln und eine entsprechende Uber-Fahrt anzufordern. Daher benötigen wir kein Gerät mit GPS.

Wir werden ein Sens'it verwenden, aber jedes Gerät, das eine Nachricht über Sigfox senden kann, kann verwendet werden, um dieses Tutorial erfolgreich durchzuführen.

Schauen Sie hier, wenn Sie mehr Details zu den Sigfox-Herstellern haben möchten.

Schritt 1: Hardware

Ein Sens'it (oder ein anderes Gerät, das eine Sigfox-Nachricht senden kann)

Schritt 2: Die Uber-API

Wir werden den Bestellprozess einer Fahrtanfrage automatisieren, indem wir Uber API-Endpunkte aufrufen.

Um zu verstehen, wie dies möglich ist, sehen Sie sich bitte das Knotenmodul an, das ich aus Gründen der Einfachheit und Klarheit der Verwendung entwickelt habe. Sie benötigen ein Zugriffstoken für die Uber-API, damit sie funktioniert. Das Verfahren zum Abrufen dieses Tokens finden Sie auf dieser GitHub-Seite.

Voraussetzungen

  • Ein gültiges Uber-Konto
  • Ihr Uber API-Zugriffstoken (siehe oben, wie Sie es erhalten)
  • Ein aktiviertes Gerät im Sigfox-Backend (folgen Sie diesem Link für die Sens'it-Aktivierung). Sie benötigen die Geräte-ID und den PAC.

Installation

In app.js werden zwei Adressstrukturen wie folgt erstellt (mit in Umgebungsvariablen definierten Werten):

Konstante Adresse_1 = {

'name': process.env. ADDRESS_1_NAME, 'lat': process.env. ADDRESS_1_LAT, 'lng': process.env. ADDRESS_1_LNG }; const address_2 = { 'name': process.env. ADDRESS_2_NAME, 'lat': process.env. ADDRESS_2_LAT, 'lng': process.env. ADDRESS_2_LNG };

Diese Adressen werden verwendet, um die Abhol- und Abgabeorte anzugeben. Wir werden sie später einstellen.

Wenn das Sens'it-Gerät seine geolokalisierte Position sendet, die der Adresse Nr. 1 am nächsten liegt, wird Adresse Nr. 1 als Abholung und Adresse Nr. 2 als Abgabestelle für die Fahrtanfrage festgelegt. Und so weiter für die Rückseite…

Wenn der Geolokalisierungsdienst Sigfox Backend einen Präzisionsradius zurückgibt, der größer als die Entfernung zwischen den beiden Adressen ist, wird die Uber-Anfrage nicht ausgeführt (da das Ankunftsziel nicht bestimmt werden kann).

Schritt 3: Bereitstellen auf Heroku

Bereitstellen auf Heroku
Bereitstellen auf Heroku
Bereitstellen auf Heroku
Bereitstellen auf Heroku

Ich habe eine App mit NodeJS geschrieben, um den Bestellprozess zu automatisieren. Klicken Sie auf die Schaltfläche unten, um es automatisch auf Heroku bereitzustellen.

KLICKEN SIE HIER, UM ZU BEREITSTELLEN

Eine alternative Möglichkeit, es bei Heroku zum Laufen zu bringen, besteht darin, Heroku Cli zu installieren und diesen Schritten zu folgen:

$git-Klon

$ cd sigfox_uber $ heroku apps:create $ git push heroku master

Gehen Sie nun zur Registerkarte Einstellungen Ihrer Heroku-App (https://dashboard.heroku.com/apps//settings), um die Umgebungsvariablen festzulegen. Legen Sie die folgenden Variablen fest (stellen Sie sicher, dass Sie die gewünschten Adressen festlegen):

  • ACCESS_TOKEN | YOUR_ACCESS_TOKEN
  • ADRESSE_1_LAT | 49.009698
  • ADRESSE_1_LNG | 2.547882
  • ADRESSE_1_NAME | Flughafen
  • ADDRESS_2_LAT | 48.876579
  • ADDRESS_2_LNG | 2.330618
  • ADDRESS_2_NAME | Büro

Der Endpunkt "…/request/:device/:lat/:lng/:radius" wird jedes Mal aufgerufen, wenn eine Nachricht an das Sigfox-Backend gesendet wird (siehe unten, wie es konfiguriert wird). Durch die Verwendung des Geolokalisierungsdienstes von Sigfox erhält der Server die ungefähre Position von Sens'it. Dieser bestellt dann ein UberX mit den ermittelten Abhol- und Abgabeadressen.

Um zu überprüfen, ob die App ausgeführt wird, rufen Sie ihre URL auf. In Ihrem Browser sollte "App läuft…" angezeigt werden. Sie können auch die Protokolle für weitere Details überprüfen.

Schritt 4: [Optional] Kostenlose SMS-Benachrichtigungen bei einem französischen Mobilfunkanbieter (mit dem Namen Free)

Wenn Sie ein französisches Abonnement für einen kostenlosen Mobilfunkanbieter haben, können Sie deren kostenlose SMS-Benachrichtigungs-API verwenden, um Benachrichtigungen auf Ihrem Telefon zu erhalten. Damit dies funktioniert, aktivieren Sie einfach den Dienst in Ihrem Abonnentenbereich und verweisen Sie auf die folgenden Umgebungsvariablen in der Registerkarte Einstellungen Ihrer Heroku-App:

  • FREE_USER | YOUR_FREE_USER
  • FREE_PASS | YOUR_FREE_PASS

Sie können jetzt SMS-Benachrichtigungen zu Ihren UberX-Anfragen erhalten.

Schritt 5: Konfigurieren Sie den Sigfox-Backend-Callback

Konfigurieren Sie den Sigfox Backend-Callback
Konfigurieren Sie den Sigfox Backend-Callback
  • Hier anmelden
  • Gehen Sie zu https://backend.sigfox.com/devicetype/list, klicken Sie mit der linken Maustaste auf Ihre Gerätezeile und wählen Sie "Bearbeiten".
  • Gehen Sie nun links zum Abschnitt "CALLBACKS", wählen Sie oben rechts "New", wählen Sie "Custom Callback"
  • Typ: SERVICE | GEOLOC
  • Kanal-URL
  • URL-Muster:
  • HTTP-Methode verwenden: GET
  • Wählen Sie "OK", um zu bestätigen

Schritt 6: Zum Testen ausführen

Standardmäßig ist die Sandbox-Variable auf true gesetzt. Dadurch werden Uber-Fahrtanfragen gefälscht, damit Ihr Bankkonto nicht durch unbeabsichtigte Manipulationen beeinträchtigt wird.

Drücken Sie zweimal die Sens'it-Taste, um eine Nachricht über Sigfox zu senden. Stellen Sie sicher, dass die Nachrichten im Sigfox-Backend gut ankommen. Melden Sie sich an, gehen Sie zum Abschnitt GERÄT und klicken Sie links auf Ihre Geräte-ID. Sie können dann den Abschnitt NACHRICHTEN aufrufen, um die Nutzlasten anzuzeigen.

Schritt 7: Bestellen Sie eine echte Uber-Fahrt

Bestellen Sie eine echte Uber-Fahrt
Bestellen Sie eine echte Uber-Fahrt

Setzen Sie nun die Sandbox-Umgebungsvariable auf false, wenn Sie einen echten Uber-Treiber anfordern möchten.

SANDBOX | falsch

Der Sens'it-Button ruft den Pfad …/request/:device/:lat/:lng/:radius auf und löst die Uber-Fahranfrage aus!

Den aktuellen Anfragestatus können Sie auch unter …/request/current einsehen.

Um eine Bestellung zu stornieren, kann dieser Pfad verwendet werden: …/request/cancel.

Fahren wir los

Viel Spaß beim Bestellen deiner Ubers!

Antoine de Chassey

Empfohlen: