💾 Archived View for gmi.bacardi55.io › blog › 2017 › 03 › 18 › an-uber-neuron-for-kalliope captured on 2024-06-16 at 13:05:11. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-01-29)
-=-=-=-=-=-=-
Posted on 2017-03-18
Today I realized that I didn't write about a neuron I did for Kalliopé to interact with the Uber API[1] that I've done a couple of weeks following a "silly bet" with my brother after I've done the Google maps neuron[2]
1: https://developer.uber.com/
2: https://github.com/bacardi55/kalliope-gmaps
The basic idea was to see what could be done without validating any drive order. Indeed, as of now, I find it too dangerous that someone could by a voice command order a driver (or anything payment related).
Plus, to do this automatic order, you need more permission (end user permission as opposed to server to server permissions) and that complexified too much the neuron (coded in a 7h flight ^^).
Basically, this Uber neuron[3] let you ask for how long to get a Uber based on an address and a Uber type (X, Black, Pool, …)
3: https://github.com/bacardi55/kalliope-uber
It also let you put an optional end address. In that case, you will also have a estimation of the cost and the duration of a drive from a start address to this destination.
kalliope install --git-url https://github.com/bacardi55/kalliope-uber.git
Get the estimated time to get a driving_mode driver based on geolocation data
{% raw %} - name: "Uber-time-estimate" signals: - order: "how long for a driver to pick me up" neurons: - say: message: "Calculating" - uber: uber_api_key: "***********************" start_longitude: "***" start_latitude: "****" driving_mode: "uberX" say_template: "A {{driving_mode}} driver can be there in {{ time_to_get_driver }} minutes" {% endraw %}
Get the estimated time to get a driving_mode based on a text address
{% raw %} - name: "Uber-time-estimate-by-address" signals: - order: "how long for a driver to pick me up" neurons: - say: message: "Calculating" - uber: uber_api_key: "***********************" gmaps_api_key: "**********************" start_address: "*********" driving_mode: "uberX" say_template: "A {{driving_mode}} driver can be there in {{ time_to_get_driver }} minutes" {% endraw %}
Get the estimated time to get a driving_mode, the price and the ride duration
{% raw %} - name: "Uber-time-and-price" signals: - order: "how much for a rider to work" neurons: - say: message: "Calculating" - uber: uber_api_key: "***********************" driving_mode: "uberX" start_longitude: "***" start_latitude: "****" end_longitude: "*****" end_latitude: "******" say_template: "A {{driving_mode}} driver can be there in {{ time_to_get_driver }} minutes. Traject will take about {{ duration }} and would cost {{ estimate }}" {% endraw %}
Get the estimated time to get a driving_mode, the price and the ride duration to go to an address givin in argument
{% raw %} - name: "Uber-time-and-price-by-addresses" signals: - order: "how much for a rider to {{end_address}}" neurons: - say: message: "Calculating" - uber: uber_api_key: "***********************" gmaps_api_key: "**********************" start_address: "*********" driving_mode: "uberX" say_template: "A {{driving_mode}} driver can be there in {{ time_to_get_driver }} minutes. Traject will take about {{ duration }} and would cost {{ estimate }}" args: - end_address {% endraw %}
Get the estimated time to get a driving_mode, the price and the ride duration based on addresses given in arguments
{% raw %} - name: "Uber-time-and-price-by-start-address" signals: - order: "how long for a driver to pick me up {{start_address}} to go to {{end_address}}" neurons: - say: message: "Calculating" - uber: uber_api_key: "***********************" gmaps_api_key: "**********************" driving_mode: "uberX" say_template: "A {{driving_mode}} driver can be there in {{ time_to_get_driver }} minutes. Traject will take about {{ duration }} and would cost {{ estimate }}" args: - start_address - end_address {% endraw %}
see more example in the sample directory
enjoy!