@twilio-labs/plugin-webhook
Plugin for the Twilio CLI to test your Twilio webhooks and TwiML Bins.
This plugin adds functionality to the Twilio CLI to invoke emulated webhook events including valid X-Twilio-Signature
to validate the webhooks and TwiML Bins you are creating for your Twilio applications.
Requirements
Install the Twilio CLI
This tool is a plugin for the Twilio CLI meaning you'll have to first install the Twilio CLI. You can find instructions for a variety of environments in our docs.
If you are using npm
or yarn
for global CLI tools you can run:
npm install -g twilio-cli
yarn global add twilio-cli
Usage
$ twilio plugins:install @twilio-labs/plugin-webhook
$ twilio --help webhook
USAGE
$ twilio webhook
...
Commands
twilio webhook:invoke URL
Emulate a Twilio webhook request to your URL
USAGE
$ twilio webhook:invoke URL
ARGUMENTS
URL The URL of your webhook
OPTIONS
-X, --method=(GET|POST) [default: POST] The HTTP method that should be used for the webhook request
-d, --data-urlencode=data-urlencode Override a request field. In the format Key=Value. Example: Body=Hello
-i, --include Output additional response data such as response headers
-l=(debug|info|warn|error|none) [default: info] Level of logging messages.
-p, --profile=profile Shorthand identifier for your profile.
--account-sid=account-sid The Account SID to use in the event data. Defaults to your active CLI profile or
otherwise TWILIO_ACCOUNT_SID environment variable.
--auth-token=auth-token The Auth Token to use to generate the X-Twilio-Signature. Required unless
--no-signature is used. Defaults to value of TWILIO_AUTH_TOKEN environment
variable if nothing is passed.
--no-signature Circumvents the generation of the X-Twilio-Signature field
--silent Suppress output and logs. This is a shorthand for "-l none -o none".
--type=(sms|voice) [default: sms] What type of webhook event should it emulate?
EXAMPLES
# Invoke with a simulated call event
twilio webhook:invoke <your-url> --type=voice
# Pass in an explict auth token and Account SID to use
twilio webhook:invoke <your-url> --auth-token=$TWILIO_AUTH_TOKEN --account-sid=$TWILIO_ACCOUNT_SID --type=voice
# Simulate an SMS with the message "Hello"
twilio webhook:invoke <your-url> --auth-token=$TWILIO_AUTH_TOKEN --type=sms -d Body=Hello
# Skip X-Twilio-Signature header generation
twilio webhook:invoke <your-url> --no-signature
# Use Account SID from specific CLI profile
twilio webhook:invoke <your-url> --auth-token=$TWILIO_AUTH_TOKEN -p <your-profile>
See code: src/commands/webhook/invoke.js
Contributing
We always welcome contributions to this project. To learn more about how to get started, check out our contribution guide.
Code of Conduct
Please be aware that this project has a Code of Conduct. The tldr; is to just be excellent to each other
License
MIT