Before you can get started, you need to do the following:
Set all Conversation API configuration settings.
- Node.js and a familiarity with how to create a new app.
Using the Conversation API, you can send messages to any channel you have configured. This tutorial shows you how to set up and send a message in a Node.js application.
First we'll create a Node project using npm. This creates a package.json and the core dependencies necessary to start coding.
To create the project, do the following steps:
Create a folder called
conv-send
Navigate into the folder you created and run the following command.
npm init
This command adds the node_modules folder and the package.json file. You will be prompted to provide values for the fields. For this tutorial, you can simply accept the default values and press enter at each stage.
Add the fetch package with npm to generate the necessary dependencies.
npm install node-fetch
Note:The node fetch package requires us to use node modules, so we need to use a
.mjs
file type instead of a.js
.
This tutorial uses basic authentication for testing purposes. We recommend OAuth 2.0 authentication in a production environment. Read more about authentication methods.
Create a new file named
index.mjs
in the project and paste the provided "index.mjs" code found on this page into the file. This code sends a text message.index.mjs// Find your App ID at dashboard.sinch.com/convapi/apps // Find your Project ID at dashboard.sinch.com/settings/project-management // Get your Access Key and Access Secret at dashboard.sinch.com/settings/access-keys const APP_ID = ''; const ACCESS_KEY = ''; const ACCESS_SECRET = ''; const PROJECT_ID = ''; const CHANNEL = ''; const IDENTITY = ''; import fetch from 'node-fetch'; async function run() { const resp = await fetch( 'https://us.conversation.api.sinch.com/v1/projects/' + PROJECT_ID + '/messages:send', { method: 'POST', headers: { 'Content-Type': 'application/json', Authorization: 'Basic ' + Buffer.from(ACCESS_KEY + ':' + ACCESS_SECRET).toString('base64') }, body: JSON.stringify({ app_id: APP_ID, recipient: { identified_by: { channel_identities: [ { channel: CHANNEL, identity: IDENTITY } ] } }, message: { text_message: { text: 'Text message from Sinch Conversation API.' } } }) } ); const data = await resp.json(); console.log(data); } run();
Note:This sample code is configured for the US region. If your Conversation API app wasn't created in the US region, replace all instances of
https://us.conversation.api.sinch.com
withhttps://eu.conversation.api.sinch.com
in the sample code.Assign your values to the following parameters:
Parameter Your value APP_ID
Find your app ID on your Sinch [dashboard](https://dashboard.sinch.com/convapi/apps). ACCESS_KEY
Find your access key on your Sinch [dashboard](https://dashboard.sinch.com/settings/access-keys). ACCESS_SECRET
Find your access secret on your Sinch [dashboard](https://dashboard.sinch.com/settings/access-keys).
Note:Access secrets are only available during initial key creation.PROJECT_ID
Find your project ID on your Sinch [dashboard](https://dashboard.sinch.com/settings/project-management). CHANNEL
The channel you want to use to send the message. Available channels are configured for the app on your Sinch [dashboard](https://dashboard.sinch.com/settings/access-keys). This guide assumes you've started with an SMS
channel, but you can use any channel configured for your app:SMS
MESSENGER
MMS
RCS
WHATSAPP
VIBER
VIBERBM
INSTAGRAM
TELEGRAM
KAKAOTALK
APPLEBC
LINE
WECHAT
IDENTITY
The ID of the contact to which you want to send the message. Save the file.
Now you can execute the code and send your test message. Run the following command:
node index.mjs
You should receive a message in your configured messaging platform.
Now that you know how to send a message, next learn how to handle an incoming message.
Read the links below to learn more: