Inhoudsopgave:

De Uber-knop: 7 stappen
De Uber-knop: 7 stappen

Video: De Uber-knop: 7 stappen

Video: De Uber-knop: 7 stappen
Video: Zou jij het kopen ? 😂 #nederlands #holland 2024, November
Anonim
De Uber-knop
De Uber-knop

Krijg een Uber-rit door op een knop te drukken!

Invoering

In deze zelfstudie zullen we de Sigfox-netwerklokalisatieservice gebruiken (die voorlopig een positienauwkeurigheid van maximaal 1 km kan geven) om de dichtstbijzijnde positie bij een opgegeven adres te krijgen en dienovereenkomstig een Uber-rit aan te vragen. Daarom hebben we geen apparaat met GPS nodig.

We zullen een Sens'it gebruiken, maar elk apparaat dat een bericht via Sigfox kan verzenden, kan worden gebruikt om deze tutorial met succes uit te voeren.

Kijk hier voor meer informatie over Sigfox makers.

Stap 1: Hardware

Een Sens'it (of een ander apparaat dat een Sigfox-bericht kan verzenden)

Stap 2: De Uber API

We automatiseren het bestelproces van een ritverzoek door Uber API-eindpunten aan te roepen.

Om te begrijpen hoe dit mogelijk is, moet u de node-module bekijken die ik heb ontwikkeld voor eenvoud en duidelijkheid van het gebruik. Je hebt een toegangstoken tot de Uber API nodig om het te laten werken. De procedure voor het verkrijgen van dit token is te vinden op deze GitHub-pagina.

Vereisten

  • Een geldig Uber-account
  • Uw Uber API-toegangstoken (kijk hierboven hoe u deze kunt verkrijgen)
  • Een geactiveerd apparaat op de Sigfox Backend (volg deze link voor de Sens'it-activering). U hebt de apparaat-ID en PAC nodig.

Installatie

In app.js worden als volgt twee adressenstructuren gemaakt (met waarden gedefinieerd in omgevingsvariabelen):

const adres_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 };

Deze adressen worden gebruikt om de ophaal- en afleverlocaties te specificeren. We zullen ze later instellen.

Als het Sens'it-apparaat zijn geo-gelokaliseerde positie het dichtst bij adres #1 verzendt, wordt adres #1 ingesteld als ophalen en adres #2 wordt ingesteld als drop-off voor het ritverzoek. En zo verder voor het omgekeerde…

Als de geolocatieservice van Sigfox Backend een precisieradius retourneert die groter is dan de afstand tussen de twee adressen, wordt het Uber-verzoek niet uitgevoerd (omdat de aankomstbestemming niet kan worden bepaald).

Stap 3: Implementeer op Heroku

Implementeren op Heroku
Implementeren op Heroku
Implementeren op Heroku
Implementeren op Heroku

Ik heb een app geschreven met NodeJS om het bestelproces te automatiseren. Klik op de onderstaande knop om het automatisch op Heroku te implementeren.

KLIK HIER OM TE ONTWIKKELEN

Een alternatieve manier om het bij Heroku te laten werken, is door de Heroku Cli te installeren en deze stappen te volgen:

$ git-kloon

$ cd sigfox_uber $ heroku-apps: maak $ git push heroku-master

Ga nu naar het tabblad Instellingen van je Heroku-app (https://dashboard.heroku.com/apps//settings) om de omgevingsvariabelen in te stellen. Stel de volgende variabelen in (zorg ervoor dat u de gewenste adressen instelt):

  • ACCESS_TOKEN | UW_ACCESS_TOKEN
  • ADDRESS_1_LAT | 49.009698
  • ADDRESS_1_LNG | 2.547882
  • ADDRESS_1_NAME | luchthaven
  • ADDRESS_2_LAT | 48.876579
  • ADDRESS_2_LNG | 2.330618
  • ADDRESS_2_NAME | kantoor

Het eindpunt "…/request/:device/:lat/:lng/:radius" wordt aangeroepen telkens wanneer een bericht wordt verzonden naar de Sigfox-backend (zie hieronder hoe u dit configureert). Door de geolokalisatieservice van Sigfox te gebruiken, ontvangt de server de geschatte positie van Sens'it. Deze bestelt dan een UberX met de vastgestelde ophaal- en afleveradressen.

Ga naar de URL om te controleren of de app actief is. U zou "App wordt uitgevoerd…" in uw browser moeten zien. U kunt ook de logboeken raadplegen voor meer informatie.

Stap 4: [Optioneel] Gratis sms-meldingen bij een Franse mobiele operator (genaamd Free)

Als je een Frans abonnement hebt voor gratis mobiele operators, kun je hun gratis SMS-notificatie-API gebruiken om meldingen op je telefoon te ontvangen. Om dit te laten werken, activeert u eenvoudig de service in uw abonneegebied en raadpleegt u de volgende omgevingsvariabelen op het tabblad Instellingen van uw Heroku-app:

  • FREE_USER | YOUR_FREE_USER
  • FREE_PASS | UW_FREE_PASS

U kunt nu sms-meldingen ontvangen over uw UberX-verzoeken.

Stap 5: Configureer de Sigfox Backend Callback

Configureer de Sigfox Backend Callback
Configureer de Sigfox Backend Callback
  • Hier inloggen
  • Ga naar https://backend.sigfox.com/devicetype/list, klik links op je apparaatrij en selecteer "Bewerken"
  • Ga nu naar het gedeelte "CALLBACKS" aan de linkerkant, selecteer "new" in de rechterbovenhoek, selecteer "Custom Callback"
  • Soort: DIENST | GEOLOC
  • Kanaal-URL
  • URL-patroon:
  • Gebruik HTTP-methode: GET
  • Selecteer "OK" om te valideren

Stap 6: Uitvoeren om te testen

Standaard is de sandbox-variabele ingesteld op true. Hiermee worden Uber-ritverzoeken vervalst, zodat uw bankrekening niet wordt beïnvloed door onbedoelde manipulaties.

Druk twee keer op de Sens'it-knop om een bericht via Sigfox te verzenden. Zorg ervoor dat de berichten goed worden ontvangen op de Sigfox Backend. Log in, ga naar het gedeelte APPARAAT en klik links op uw apparaat-ID. U kunt dan naar het gedeelte BERICHTEN gaan om de payloads te bekijken.

Stap 7: Bestel een echte Uber-rit

Bestel een echte Uber-rit
Bestel een echte Uber-rit

Stel nu de sandbox-omgevingsvariabele in op false als u een echt Uber-stuurprogramma wilt aanvragen.

ZANDBAK | vals

De Sens'it-knop roept het pad …/request/:device/:lat/:lng/:radius op en activeert het Uber-ritverzoek!

U kunt de huidige aanvraagstatus ook zien op …/aanvraag/huidig.

Om een bestelling te annuleren, kan dit pad worden gebruikt: …/aanvraag/annuleren.

Laten we rijden

Veel plezier met het bestellen van uw Ubers!

Antoine de Chassey

Aanbevolen: