Handle an incoming message
Note:
Before you can get started, you need to do the following:
- Set all Conversation API configuration settings.
- The latest version of .Net Core with Long Term Support and a familiarity with how to create a new MVC application.
- ngrok. You'll use ngrok to open a tunnel to your local server.
Using the Conversation API, you can receive and respond to messages from any channel you have configured. This tutorial shows you how to set up a .Net Core MVC application that receives and responds to messages.
Note:
This tutorial is easier to accomplish if you have already completed the steps for Sending a message.
Set up your .Net Core application
- Create a new folder where you want to keep your app project. Then, open a command prompt to that location.
- Create a new .Net Core MVC app with the following command:
dotnet new mvc
- Add the
Newtonsoft.Json
NuGet package.dotnet add package Newtonsoft.Json
Modify your application
Note:
This tutorial uses basic authentication for testing purposes. We recommend OAuth 2.0 authentication in a production environment. Read more about authentication methods here.
- In the Controllers folder of your project, create a new file named
IncomingController.cs
. Populate that file with the provided "IncomingController.cs" code found on this page. This code starts a server that listens for incoming messages. It then sends a text message in response.
Note:
https://us.conversation.api.sinch.com
with https://eu.conversation.api.sinch.com
in the sample code.- Assign your values to the following parameters:
Parameter | Your value |
---|---|
Access_Key | Find your access key on your Sinch dashboard. |
Access_Secret | Find your access secret on your Sinch dashboard. Note: Access secrets are only available during initial key creation. |
- Save the file.
- Compile your application by executing the following command:
dotnet build
Start your web server and set up a tunnel
- Start the server by executing the following command:
dotnet run
By default, your web server is started on port 5001.
- Now you need to open a tunnel to the server you just set up. We are using ngrok for this. if you don't have ngrok installed already you can install it with the following command:
npm install ngrok -g
- Open a terminal or command prompt and enter:
ngrok http https://localhost:5001
- Copy the HTTPS address that ends with .ngrok.io and add
/Incoming/ReceiveMessage
to the end of it.
Configure your webhook
For your application to receive messages from Conversation API, you must configure a webhook in your Conversation API app. For detailed instructions on configuring a webhook, click here.- Set your webhook URL to the HTTP address you copied in the previous step.
- Assign the following triggers:
CONVERSATION_START
CONVERSATION_STOP
EVENT_DELIVERY
EVENT_INBOUND
MESSAGE_DELIVERY
MESSAGE_INBOUND
UNSUPPORTED
Test the application
Now that your server is running and your webhook is configured, you can test the application. From your messaging platform, send your Conversation API app a message. You will receive a message back in response on the messaging platform.
Additional resources
Read the links below to learn more: