-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
d8cdcde
commit 23c6717
Showing
5 changed files
with
1,054 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
NEXMO_API_KEY= | ||
NEXMO_API_SECRET= | ||
VONAGE_API_KEY= | ||
VONAGE_API_SECRET= | ||
FROM_NUMBER= | ||
TO_NUMBER= |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,11 @@ | ||
# Nexmo Node.js Skeleton Application | ||
# Vonage Node.js Skeleton Application | ||
|
||
<img src="https://developer.nexmo.com/assets/images/Vonage_Nexmo.svg" height="48px" alt="Nexmo is now known as Vonage" /> | ||
|
||
This repository is an Express application to test and debug your Vonage credentials and environment. Utilize this application to test that your API credentials are in working order. And to examine the event webhook data you receive when Vonage receives API requests from your account. | ||
|
||
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy) | ||
|
||
This repository is an Express application to test and debug your Nexmo credentials and environment. Utilize this application to test that your API credentials are in working order. And to examine the event webhook data you receive when Nexmo receives API requests from your account. | ||
|
||
* [Requirements](#requirements) | ||
* [Installation and Usage](#installation-and-usage) | ||
|
@@ -17,9 +22,9 @@ This application requires that you have the following installed locally: | |
* [Node.js](https://nodejs.org/en/) | ||
* [Express](https://expressjs.com/) | ||
* [body-parser](https://github.com/expressjs/body-parser) | ||
* [Nexmo Node.js SDK](https://www.npmjs.com/package/nexmo) | ||
* [Vonage Node.js SDK](https://www.npmjs.com/package/@vonage/server-sdk) | ||
|
||
Additionally, to test your Nexmo account, you must have a Nexmo account. You can create a Nexmo account for free or manage your Nexmo account details at the [Nexmo Dashboard](https://dashboard.nexmo.com). | ||
Additionally, to test your Vonage account, you must have a Vonage account. You can create a Vonage account for free or manage your Vonage account details at the [Vonage Dashboard](https://dashboard.nexmo.com). | ||
|
||
## Installation and Usage | ||
|
||
|
@@ -31,30 +36,30 @@ git clone [email protected]:Nexmo/node-skeleton-app.git | |
|
||
Alternatively, you could also first fork your copy of this repository to your GitHub profile and then clone your forked copy. | ||
|
||
Once you have downloaded a local copy, change into the directory of the application in your terminal. You can now set up the application for your Nexmo account. | ||
Once you have downloaded a local copy, change into the directory of the application in your terminal. You can now set up the application for your Vonage account. | ||
|
||
### API Credentials | ||
|
||
To test your API credentials, rename the provided `.env.example` file to `.env` and supply the values for the following environment variable keys: | ||
|
||
* NEXMO_API_KEY= | ||
* NEXMO_API_SECRET= | ||
* VONAGE_API_KEY= | ||
* VONAGE_API_SECRET= | ||
* FROM_NUMBER= | ||
* TO_NUMBER= | ||
|
||
The `NEXMO_API_KEY` and `NEXMO_API_SECRET` are to be provided with your API key and secret, respectively. The `FROM_NUMBER` is the number you wish the test SMS message to originate from. For example, this could be your [Nexmo provisioned virtual phone number](https://developer.nexmo.com/numbers/overview). The `TO_NUMBER` is the number you wish to send the test SMS message to. This could be your cell phone number. | ||
The `VONAGE_API_KEY` and `VONAGE_API_SECRET` are to be provided with your API key and secret, respectively. The `FROM_NUMBER` is the number you wish the test SMS message to originate from. For example, this could be your [Vonage provisioned virtual phone number](https://developer.nexmo.com/numbers/overview). The `TO_NUMBER` is the number you wish to send the test SMS message to. This could be your cell phone number. | ||
|
||
As always, make sure not to commit your sensitive API credential data to any public version control. If you are using Git, you can add the `.env` file to your `.gitignore` file to ensure that it is not committed. | ||
|
||
### Using ngrok | ||
|
||
To test the incoming webhook data from Nexmo, the Nexmo API needs an externally accessible URL to send that data to. Commonly used service for development and testing is ngrok. The service provides you with an externally available web address that creates a secure tunnel to your local environment. The [Nexmo Developer Platform](https://developer.nexmo.com/concepts/guides/testing-with-ngrok) has a guide to getting started with testing with ngrok. | ||
To test the incoming webhook data from Vonage, the Vonage API needs an externally accessible URL to send that data to. Commonly used service for development and testing is ngrok. The service provides you with an externally available web address that creates a secure tunnel to your local environment. The [Vonage Developer Platform](https://developer.nexmo.com/concepts/guides/testing-with-ngrok) has a guide to getting started with testing with ngrok. | ||
|
||
Once you have your ngrok URL, you can enter your [Nexmo Dashboard](https://dashboard.nexmo.com) and supply it as the `EVENT URL` for any Nexmo service that sends event data via a webhook. A good test case is creating a Voice application and providing the ngrok URL in the following format as the event URL: | ||
Once you have your ngrok URL, you can enter your [Vonage Dashboard](https://dashboard.nexmo.com) and supply it as the `EVENT URL` for any Vonage service that sends event data via a webhook. A good test case is creating a Voice application and providing the ngrok URL in the following format as the event URL: | ||
|
||
`#{ngrok URL}/webhooks/event` | ||
|
||
You can then call your Nexmo Voice application. With your skeleton application running, you can observe the webhook data being received in real-time for the diagnosis of any issues and testing of your Nexmo account. | ||
You can then call your Vonage Voice application. With your skeleton application running, you can observe the webhook data being received in real-time for the diagnosis of any issues and testing of your Vonage account. | ||
|
||
### Running the Application | ||
|
||
|
@@ -64,9 +69,9 @@ Once you have your API credentials incorporated and your ngrok setup ready, you | |
npm start | ||
``` | ||
|
||
You can test that your credentials work by sending a test SMS by navigating to `https://localhost:3000/test-sms` in your browser or by sending a cURL GET request to that URL. If you configured your `TO_NUMBER` to be your number, you should receive a text message shortly after that says: "This is a test SMS of my Nexmo Node.js skeleton app.". | ||
You can test that your credentials work by sending a test SMS by navigating to `https://localhost:3000/test-sms` in your browser or by sending a cURL GET request to that URL. If you configured your `TO_NUMBER` to be your number, you should receive a text message shortly after that says: "This is a test SMS of my Vonage Node.js skeleton app.". | ||
|
||
The skeleton app is also capable of receiving Nexmo API webhook data. As mentioned in the [Using ngrok](#using-ngrok) section above, a good candidate for that test is a Nexmo Voice application. From within your Nexmo dashboard you can create a Nexmo Voice application, provision a Nexmo virtual phone number and then link that number to your Voice application. Once you have ensured that your new Voice application's `EVENT URL` is `#{ngrok URL}/webhooks/event`, you can then give your Nexmo number a phone call. You should see the webhook data in your console in real time. For example, data for a ringing phone call will look like this: | ||
The skeleton app is also capable of receiving Vonage API webhook data. As mentioned in the [Using ngrok](#using-ngrok) section above, a good candidate for that test is a Vonage Voice application. From within your Vonage dashboard you can create a Vonage Voice application, provision a Vonage virtual phone number and then link that number to your Voice application. Once you have ensured that your new Voice application's `EVENT URL` is `#{ngrok URL}/webhooks/event`, you can then give your Vonage number a phone call. You should see the webhook data in your console in real time. For example, data for a ringing phone call will look like this: | ||
|
||
``` | ||
{ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
{ | ||
"name": "Vonage Node Skeleton App", | ||
"description": "Sample Node.js Application to test Vonage environment setup", | ||
"repository": "https://github.com/Nexmo/node-skeleton-app", | ||
"keywords": [ | ||
"express", | ||
"node", | ||
"heroku", | ||
"vonage" | ||
], | ||
"image": "heroku/node", | ||
"env": { | ||
"VONAGE_API_KEY": { | ||
"description": "Find your account API key and secret on the dashboard https://dashboard.nexmo.com" | ||
}, | ||
"VONAGE_API_SECRET": { | ||
"description": "Find your account API key and secret on the dashboard https://dashboard.nexmo.com" | ||
}, | ||
"FROM_NUMBER": { | ||
"description": "Phone number to send message from." | ||
}, | ||
"TO_NUMBER": { | ||
"description": "Phone number to send message to." | ||
} | ||
} | ||
} |
Oops, something went wrong.