Skip to content

Latest commit

 

History

History
72 lines (45 loc) · 2.58 KB

readme.adoc

File metadata and controls

72 lines (45 loc) · 2.58 KB

Camel Example Webhook

This example shows the webhook meta-component in action using one of the supported components: telegram.

The example starts up a spring-boot application that configures automatically a webhook using the Telegram API to point to the local application and waits for messages.

Setting up a Telegram Bot

Creating a Telegram Bot is the first step for running this demo. You need to follow the instructions at the Telegram Bot developers home.

When a new Bot is created, the BotFather provides an authorization token corresponding to the Bot. The authorization token is a mandatory parameter for the camel-telegram endpoint and should be put in the application.properties file of the example application.

The full property should look like:

camel.component.telegram.authorization-token=<put-here-your-token>

Setting up a webhook tunnel

In order to use this example from a standard workstation machine, you need it to be exposed to the internet, for the Telegram servers to be able to contact it. Moreover, Telegram requires that the endpoint is exposed using HTTPS.

The best way to expose your workstation through a internet HTTPS endpoint is using some tunneling tool, like localtunnel. A more popular option is Ngrok but HTTPS endpoints currently require a paid subscription.

With localtunnel, you can run in a terminal the following command:

npx localtunnel --port 8080

Your client will print in the console a message like the following:

your url is: https://the-subdomain-returned.loca.lt

Take note of the URL that is returned and place it in the application.properties file of the example.

The full property should look like:

camel.component.webhook.webhook-external-url=https://the-subdomain-returned.loca.lt

Running the example

Now that everything is set up, you can run the example using

mvn spring-boot:run

You can now contact your bot using a Telegram client, and you’ll see all your messages printed in the console.

What’s interesting to notice is that in this example, the Telegram component is not doing any long polling to the Telegram API, it’s just receiving push notifications.

Help and contributions

If you hit any problem using Camel or have some feedback, then please let us know.

We also love contributors, so get involved :-)

The Camel riders!