| == 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 link:https://core.telegram.org/bots#3-how-do-i-create-a-bot[Telegram Bot developers home]. |
| |
| When a new Bot is created, the link:https://telegram.me/botfather[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 link:https://serveo.net/[Serveo]. |
| A more popular option is link:https://ngrok.com/[Ngrok] but HTTPS endpoints currently require a paid subscription. |
| |
| With Serveo, you can run in a terminal the following command: |
| |
| ---- |
| ssh -R 80:localhost:8080 serveo.net |
| ---- |
| |
| Your ssh client will print in the console a message like the following: |
| |
| ---- |
| Hi there |
| Forwarding HTTP traffic from https://xxx.serveo.net |
| ---- |
| |
| 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.configuration.webhook-external-url=https://the-subdomain-returned.serveo.net |
| ---- |
| |
| === Running the example |
| |
| Now that everything is set up, you can run the example using |
| |
| ---- |
| mvn spring-boot:run |
| ---- |
| |
| You can now contat 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 |
| https://camel.apache.org/support.html[let us know]. |
| |
| We also love contributors, so |
| https://camel.apache.org/contributing.html[get involved] :-) |
| |
| The Camel riders! |