UNPKG

@twilio-labs/plugin-webhook

Version:

Emulate webhook requests from your commandline

103 lines (68 loc) 4.45 kB
<h1 align="center">@twilio-labs/plugin-webhook</h1> <p align="center">Plugin for the <a href="https://github.com/twilio/twilio-cli">Twilio CLI</a> to test your Twilio webhooks and TwiML Bins.</p> <p align="center"> <img alt="npm (scoped)" src="https://img.shields.io/npm/v/@twilio-labs/plugin-webhook.svg?style=flat-square"> <img alt="npm" src="https://img.shields.io/npm/dt/@twilio-labs/plugin-webhook.svg?style=flat-square"> <img alt="GitHub" src="https://img.shields.io/github/license/twilio-labs/plugin-serverless.svg?style=flat-square"> <a href="https://github.com/twilio-labs/.github/blob/main/CODE_OF_CONDUCT.md"><img alt="Code of Conduct" src="https://img.shields.io/badge/%F0%9F%92%96-Code%20of%20Conduct-blueviolet.svg?style=flat-square"></a> <a href="http://makeapullrequest.com"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square" alt="PRs Welcome" /></a> <hr> This plugin adds functionality to the [Twilio CLI](https://github.com/twilio/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. <!-- toc --> <!-- tocstop --> ## 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](https://www.twilio.com/docs/cli). If you are using `npm` or `yarn` for global CLI tools you can run: ```sh-session npm install -g twilio-cli yarn global add twilio-cli ``` ## Usage ```sh-session $ twilio plugins:install @twilio-labs/plugin-webhook $ twilio --help webhook USAGE $ twilio webhook ... ``` ## Commands <!-- commands --> * [`twilio webhook:invoke URL`](#twilio-webhookinvoke-url) ## `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](https://github.com/twilio-labs/plugin-webhook/blob/v0.1.1/src/commands/webhook/invoke.js)_ <!-- commandsstop --> ### Contributing We always welcome contributions to this project. To learn more about how to get started, [check out our contribution guide](docs/CONTRIBUTING.md). ### Code of Conduct Please be aware that this project has a [Code of Conduct](https://github.com/twilio-labs/.github/blob/main/CODE_OF_CONDUCT.md). The tldr; is to just be excellent to each other ❤️ ## License MIT