Level up your Twilio API skills in TwilioQuest, an educational game for Mac, Windows, and Linux. Download Now
Build the future of communications.
Start building for free

Code, Tutorials and Hacks

  • By Adam King
    Building a Low-Code Flex Activity Monitor with Twilio Event Streams and Slack Building a Low-Code Flex Activity Monitor with Twilio Event Streams and Slack

    At Signal 2020, Twilio announced Event Streams - an API that allows developers to subscribe to a stream of interactions from Twilio in the form of well-defined Events. Since then, the team has been hard at work adding more and more event types from within the Twilio platform. Not only that, but Event Streams went into Public Beta in April 2021, adding a Webhook sink type on top of the AWS Kinesis sink type.

    The availability of Event Streams, and the many event types which can be streamed to your application, has opened up myriad opportunities to use Event data from Twilio in new and interesting ways.

    In this guide, we will create a Slack App which will post to a channel in Slack every time one of our Flex / TaskRouter workers changes their selected Activity status in Flex.

    To do this, we will be doing the following:

    1. Using …
    Read More
  • By Oluyemi Olususi
    Create One-Time Passwords in PHP with Symfony and Twilio's Verify API Create One-Time Passwords in PHP with Symfony and Twilio's Verify API

    As security threats continue to grow and their impacts become ever-more significant, Two-factor Authentication (2FA) is progressively becoming a de facto security standard. As an extra layer of security to the traditional username/email and password combination normally provided by the user(s) of an application, Two-factor authentication works and can be implemented by:

    • Generating and sending a numeric code to the user's mobile device either via SMS, email, or phone call. This is popularly called One-Time Password (OTP) as it is a short-live password that can only be used once during authentication.
    • Using an authenticator app to provide a constantly rotating set of codes that can be used for authentication when needed.
    • Using push authentication where a user responds to a device push notification to either approve or reject an in-application event.

    In this article, I will show you how to generate an OTP and send it to the user via …

    Read More
  • By Vivian Bai
    Accelerate Your Development with the New Video Room Monitor, Now in Beta Accelerate Your Development with the New Video Room Monitor, Now in Beta

    Whether you are just starting to build with Twilio Programmable Video or are looking to optimize your application in production, access to the inner workings of your video application is essential to iterate fast and verify code changes to lead to the outcome you are looking for. You could dive into the Room object through the browser console, but the values are not updated in real-time, and it often takes many clicks to find the value you want. Furthermore, some of the metrics you need for optimizing your application aren’t easily consumable. For example, although you can get the total bytes sent for a given track after some number of clicks, what you probably want is the bitrate. And you probably want to see how it changes in real-time. As you go through the various stages of development, this process becomes cumbersome and the time it takes to access the …

    Read More
  • By Diane Phan
    How to Run Ngrok Using Java header - How to Use Java Servlets with Ngrok

    Java programmers can benefit from using servlets because they provide an opportunity to understand low-level concepts in Java. Servlets are also great for building interactive web applications and dynamic web pages because they extend apps hosted by web servers. They handle HTTP requests between a browser and any client, database, or application on the HTTP server.

    However, building a local servlet is just the first step. Taking the servlet a step further to communicate with a temporary public domain can allow developers to use webhooks, share a working demo of the project, and more.

    In this article, you will learn how to build and run a servlet to host your Java application and expose it publicly to the web.

    Prerequisites

    Install ngrok

    Ngrok is a great tool because it allows you to create a temporary public domain that redirects HTTP requests …

    Read More
  • By Miguel Grinberg
    Pythonで環境変数を活用する environment-variables-python

    この記事はMiguel Grinbergが執筆したこちらの記事(英語)を日本語訳したものです。

    Pythonアプリケーションを構成する際は、環境変数を使用すると非常に便利です。構成を変更する場合に、ソースコードを編集する必要がなくなります。一般的な構成アイテムのうち、環境変数を使用してアプリケーションに渡すことが多いものとしては、サードパーティのAPIキーやネットワークポート、データベースサーバー、アプリケーションの正常な動作に必要なカスタムオプションなどがあります。

    この記事では、Pythonで環境変数を使用するためのテクニックやツールを紹介します。

    Pythonから環境変数にアクセスする方法

    os.environ辞書を使用する

    Pythonでは、os.environ辞書がすべての環境変数を保持しています。アプリケーション内から変数を取得する最も簡単な方法は、標準的な辞書型の構文を使用することです。以下の例は、USERという名前の環境変数にアクセスする方法を示しています。

    >>> import os
    >>> user = os.environ['USER']
    >>> user
    'miguel'
    

    この方法を使用し、存在しない環境変数をインポートしようとすると、KeyError例外が発生します。

    >>> database_url = os.environ['DATABASE_URL']
    Traceback (most recent call l …
    Read More
  • By Diane Phan
    How to Start Your First Java Spark App header - How to Start Your First Java Spark App

    Setting up a new project to hack together an idea shouldn't be a problem, especially with the help of the Spark framework. Not only does this lightweight framework allow developers to be more productive with minimal boilerplate, but explore REST APIs at the same time.

    In this article, you will learn how to navigate a Java IDE to set up and build a Java Spark application.

    Tutorial requirements

    Start a new Java project in IntelliJ

    Open IntelliJ Idea and click on Create New Project.

    IntelliJ IDEA home screen

    Choose Gradle on the left hand side a …

    Read More
  • By Ashley Boucher
    Verify a User via SMS with Express and Twilio Verify verify sms express.png

    Many applications verify and authorize their users by sending a numeric code, called a One-Time Passcode (OTP), to the user’s phone number via either a voice call or a text message.

    In this article you’ll learn how to perform user verification via SMS through Twilio Verify. You’ll build a pared down frontend using JavaScript and HTML and you’ll build a Node.js backend with Express.

    Prerequisites

    To get started with this tutorial, you’ll need the following:

    • Node.js installed on your machine, along with a package manager like npm or yarn
    • A free Twilio account (sign up with this link and get $10 in free credit when you upgrade your account)
    • A phone where you can receive text messages

    Scaffold your backend

    In your terminal or command prompt window, navigate to your main projects or development folder. From there, run the following commands to create a new project folder, …

    Read More
  • By Jonas Lerebours
    Incident Notification and Escalation Loop using Programmable Voice Incident Notification and Escalation Loop

    Systems and Infrastructures are constantly monitored, and monitoring teams need to dispatch technicians to fix issues as fast as possible when an incident is raised. Using the Twilio API you already can call a single number to reach a technician and deliver a message, or call several numbers and deliver the message to the first person who answers. In this article we introduce an escalation loop: define several people to be called in case of an incident and call them in order, one after the other, until one of them accepts the call.

    For this to happen, we created a reusable set of Twilio Functions that can be triggered by a simple call to a REST API. The code for this solution is available on Github and can be easily deployed on your Twilio project.

    Prerequisites

    Before you can build the escalation and notification loop, you'll need to register or …

    Read More
  • By Ashutosh Hathidara
    Automatically Send Birthday Wishes with Python Flask and WhatsApp Automatically Send Birthday Wishes with Python Flask and WhatsApp

    Do you forget to send birthday wishes to your friends and loved ones? I do, and it usually results in being scolded by my fiancée! I’ve often wished for a software program that could send birthday wishes on my behalf.

    In this tutorial, we will create this exact end-to-end system. We will use Twilio's What’sApp API for sending the messages, the Flask web framework for the web server, and we will run messaging jobs periodically using APScheduler. We’ll also deploy the Flask application to AWS so it can be deployed resiliently and at scale.

    The complete code for this tutorial is available in this Github repository.

    Prerequisites

    • A Twilio account. (Sign up with this link and receive an additional $10 credit.)
    • The WhatsApp application installed on your mobile phone
    • An activated WhatsApp Sandbox (be sure to follow the setup instructions).
    • Your Account SID and Auth Token, found …
    Read More
  • By Laxman Eppalagudem
    Can The Real Codeowners Please Stand Up? Code Provenance at Scale Code ownership at scale

    Figuring out code ownership at a large company can be challenging. And identifying code owners during code related incidents is hard – with an element of stress to boot. The Product Security team at Twilio set out to solve our code ownership challenges in a way that we think can help you as well.

    Today, we’re proud to release two things that go along way towards solving the problem:

    • about.yaml - a new code ownership file specification that has all the information you need to trace any code’s current owner across your company
    • Gordon - a Github app service to monitor repositories for keeping about.yaml files up-to-date.

    Why do we need this?

    More times than we’d like to admit, we found ourselves in a situation where we find a bug or vulnerability in a piece of code, do a git blame to see who last touched that code, and find …

    Read More
  • Newer
    Older
    Sign up and start building
    Not ready yet? Talk to an expert.