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.
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>
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
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.
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!