Introduction to the Widget
The Ride Request Widget is an easy and lightweight way to add the full Uber end-to-end experience in your app with a few lines of code. The widget is part of the Uber Mobile SDK. The SDK manages the user authentication and displaying the ride request control.
The core capabilities of the Uber app are available through the widget:
- Selecting a service (e.g., uberX, UberBlack, etc.)
- Specifying pickup and dropoff locations
- Viewing time and price estimates
- Requesting a ride
¶ Registering Your App
Before you dive into the code, you first need to register an application on our Developer Dashboard. This is where you will find all of your tokens and information about your app.
¶ Creating an App
The first step is to create an app. Open the developer dashboard and you should see an option to create a new app. If you already have some apps, the option will be in the top right corner.
Clicking this will bring you to the app registration page, where you need to fill in some information about your app. Give it a name and a brief description of what your app will do.
Your app is now registered and ready to setup!
¶ Familiarizing Yourself with the Dashboard
The Developer Dashboard contains a wealth of important information about your app. Throughout the setup, we will be referencing information from the dashboard, so take some time to familiarize yourself with it now.
The dashboard consists of several tabs, but for this tutorial you will only need to use the Auth tab.
¶ Auth tab
The Auth tab is where you can find your app’s Client ID
, Client Secret
and Server Token
, configure the URLs your app will use for authentication, and specify your app signature (more on that later). This is also where you specify what scopes your app will request from the user. Note that there are two types of scopes, General and Privileged. We will discuss the difference in the next section.
¶ Choosing the Right Scopes
Scopes grant permission to various API endpoints for your app, and will be shown to the user during OAuth. It’s best to limit the scopes you need to the bare minimum so that users can feel confident with your app and the amount of data it can access.
Additionally, there are two types of scopes: General & Privileged.
¶ General
General scopes allow you access information about the user, but do not allow more advanced actions, such as requesting an Uber on their behalf.
¶ Privileged
Privileged scopes allow advanced actions, such as requesting a ride, but require your app to be approved by our team before it can be used by a wider audience. During development, however, your account (and any developer accounts you list on the dashboard) will be able to authorize these scopes without whitelisting.
More in depth information on our scopes can be found in the scopes guide.
¶ Application IDs & Tokens
App Parameter | Description |
---|---|
client_id |
The client_id identifies your application. Treat it like a username. |
client_secret |
The client_secret is your application’s password. Protect it like a password and use the application dashboard to get a new one should you ever suspect it has been leaked. |
server_token |
The server_token can be used to make calls from your server that do not require a user context. Note: We no longer issue new server tokens. We are planning to remove the support of server tokens in favour of scope based access tokens in the near future. |
¶ Configure your app in the developer dashboard
Enable the ride_widgets
scope in the developer dashboard. This will allow for the implicit grant OAuth flow.
Add a Redirect URI in the Auth tab of the developer dashboard. We strongly recommend using your Client ID (with underscores removed) as the scheme to ensure it is unique. For example:
[ClientID]://uberConnect
¶ Where to go from here
Find out how to implement a Widget on mobile apps to make a ride request from these tutorials: