Handle an incoming message

Note:

Before you can get started, you need to do the following:

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.

Steps:
  1. Set up your .Net Core application
  2. Configure your Conversation API webhook
  3. Test the application

Set up your .Net Core application

  1. Create a new folder where you want to keep your app project. Then, open a command prompt to that location.
  2. Create a new .Net Core MVC app with the following command:
    Copy
    Copied
    dotnet new mvc
  3. Add the Newtonsoft.Json NuGet package.
    Copy
    Copied
    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.

  1. 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:
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 with https://eu.conversation.api.sinch.com in the sample code.
  1. Assign your values to the following parameters:
ParameterYour value
Access_KeyFind your access key on your Sinch dashboard.
Access_SecretFind your access secret on your Sinch dashboard.
Note: Access secrets are only available during initial key creation.
  1. Save the file.
  2. Compile your application by executing the following command:
    Copy
    Copied
    dotnet build

Start your web server and set up a tunnel

  1. Start the server by executing the following command:
    Copy
    Copied
    dotnet run

    By default, your web server is started on port 5001.

  2. 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:
    Copy
    Copied
    npm install ngrok -g
  3. Open a terminal or command prompt and enter:
    Copy
    Copied
    ngrok http https://localhost:5001
  4. 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.
  1. Set your webhook URL to the HTTP address you copied in the previous step.
  2. 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:

We'd love to hear from you!
Rate this content:
Still have a question?
 
Ask the community.