Telegram Inline Query

Allows you to receive and answer an inline query from Telegram.

circle-info

Read more information about inlineQuery herearrow-up-right, and before starting, it is necessary that this mode needs to be enabled in Telegramarrow-up-right.

Configuration

Define the context that will receive inline queries, by modify the field bellow in config/platforms/telegram.rb configuration file.

  config.routes.inline_query = :main

Send Answers

In order to send answers to an inline query, call @reply.inline_query_result() method:

inline_query_result(type=Symbol, answer=Hash)

Params

Name
Description

type Symbol

Required.

Can be article, audio, contact, game, document, gif, location, mpeg4_gif, photo, venue, video or voice.

answer Hash

Required. The answer, that varies depending on the type defined, read about the response formats for each type on Telegram documentationarrow-up-right.

Usage

When an inline query arrives, the configured context will handle it, through action blocks that capture text messages such as keyword, intent, entity, any_text and so on.

In the next example, we've created a context called NewsContext, which has been configured to handle inline queries as follows:

This context will call two keyword blocks with the arguments "nytimes" and "cnn" respectively. Each of them will return news extracted from the RSS service from the The New York Times or CNN.

circle-exclamation

How would it look?

Shared content

In the example above, html_template("news/preview", {article: article}) has been called, this method loads a template from bot/templates/news/preview.rhtml with the following code:

This content is what the person with whom the user is sharing the article will receive.

Learn more about html_template() method here.

Last updated

Was this helpful?