Twilio Connect is an easy way for developers to obtain authorization to make
calls, send text messages, purchase phone numbers, read access logs and perform
other API functions on behalf of another Twilio account holder.
As an example, imagine you want to access the Twilio account of a user of
your web application to provide in-depth analytics of their Twilio account
activity. In this quickstart we'll solve this problem by creating your first
Twilio Connect App, placing the "Connect" button on your website so users can
authorize your app to access their Twilio account data and make API requests
against their account.
Creating Your First Twilio Connect App
Let's jump right in and create our first Connect app. Log in to your Twilio
account dashboard, select "Apps" and click the "Create Connect App" button.
Fill in the top section with the name of your application and your company
information.
Next, assign an Authorize URL to your Connect application. The Authorize
URL is the URL that Twilio will redirect the user's browser to after they have
authorized your application to access their Twilio account. Later on in the
quickstart we'll demonstrate how the Authorize URL is used.
Lastly, select the access rights your Connect app requires on the user's
account. For this example we will access call logs for analytics, so
we'll choose "Read all account data".
Here's what our sample Connect application looks like:
Click 'Save Changes' and you're done!
Placing the Connect Button on Your Website
The Connect button is where your customers will start the process of
authorizing your Connect App to access their Twilio account. You can generate
the code needed to place this button on your website with the Twilio Connect
button HTML generator.
After saving your application you will see a popup with HTML code. Copy the
generated code and paste it into the HTML of your website where you would
like the button to appear. If you ever need to generate this HTML again, click
on the "Generate Connect Button HTML" link at the bottom of your Connect App
Details page.
Testing the Authorization Workflow
With the Twilio Connect button now on your website, browse to the page
where you placed the HTML and click the Connect button. Verify that the
information displayed on the authorization screen is correct.
After completing the app authorization process, you are redirected to the
Authorize URL you specified when creating your Connect App. Appended to that
URL is an Account Sid URL parameter with a value that looks like this:
Your application should extract the AccountSid value from the URL and
associate it with the user's account within your application. After extracting
the AccountSid, we recommend that you redirect the user to another page within
your app so the AccountSid isn't hanging around. Let's show an example using
Java.
(warning)
Warning
This tutorial assumes you have a Java development environment with a Web server capable of running Java servlets and the twilio-java helper library. Please see our post on setting up your environment if you need help installing those programs.
_24
package com.twilio;
_24
import javax.servlet.http.HttpServlet;
_24
import javax.servlet.http.HttpServletRequest;
_24
import javax.servlet.http.HttpServletResponse;
_24
import java.io.IOException;
_24
_24
import com.twilio.sdk.verbs.TwiMLResponse;
_24
import com.twilio.sdk.verbs.TwiMLException;
_24
import com.twilio.sdk.verbs.Sms;
_24
_24
public class TwilioServlet extends HttpServlet {
_24
_24
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
With the user's Account Sid in hand, you can now request data from their
account via the Twilio REST API. A request to retrieve data from a user's
account is nearly identical to a request made against your account, with
one key difference. Instead of authenticating with your own AccountSid, you
authenticate with the Account Sid retrieved during the authorization process
and your account's Auth Token.
Here is a simple request to retrieve call logs from an account using the
Java helper library. Pay special attention to line 4 where
the customer's Account Sid is specified instead of your own:
_27
import java.util.Map;
_27
import java.util.HashMap;
_27
_27
import com.twilio.sdk.TwilioRestClient;
_27
import com.twilio.sdk.TwilioRestException;
_27
import com.twilio.sdk.resource.instance.Account;
_27
import com.twilio.sdk.resource.instance.Call;
_27
import com.twilio.sdk.resource.list.CallList;
_27
_27
public class CallRetriever {
_27
_27
// The customer's Account Sid
_27
public static final String ACCOUNT_SID = "AC123";
_27
_27
// Your own Auth Token
_27
public static final String AUTH_TOKEN = "456bef";
_27
_27
public static void main(String[] args) throws TwilioRestException {
_27
_27
TwilioRestClient client = new TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN);
_27
Account mainAccount = client.getAccount();
_27
CallList calls = mainAccount.getCalls();
_27
for (Call call : calls) {
_27
System.out.println("From: " + call.getFrom() + " To: " + call.getTo());
_27
}
_27
}
_27
}
You're Done! Now What?
Retrieving call logs on behalf of your customers is just the
start of what you can accomplish with Twilio Connect. Visit
the complete Connect documentation and best
practices to learn more about how to integrate
Connect's additional capabilities to your applications.