JSPM

  • Created
  • Published
  • Downloads 273
  • Score
    100M100P100Q104015F
  • License MIT

Actionsflow trigger telegram bot

Package Exports

  • @actionsflow/trigger-telegram_bot

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@actionsflow/trigger-telegram_bot) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme


title: "Telegram Bot" metaTitle: "Telegram Bot trigger"

@actionsflow/trigger-telegram_bot

This is an Actionsflow telegram bot trigger. telegram_bot trigger is triggered when new messages of telegram bot are detected. This trigger supports to specify one message type or multiple message types

Events

New message in telegram bot

# single message type
on:
  telegram_bot:
    event: text
    token: ${{ secrets.TELEGRAM_BOT_TOKEN }}

# multiple message types
on:
  telegram_bot:
    event:
      - photo
      - text
    token: ${{ secrets.TELEGRAM_BOT_TOKEN }}

Params

This trigger accepts all trigger's general params.

  • token, required, telegram bot token, you should get it from Telegram BotFather, for example: 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11

  • webhook, optional, boolean, if use telegram webhook mode to get updates, if true, you must set webhook through telegram's setWebhook API, the webhook url should be https://webhook.actionsflow.workers.dev/<owner>/<repo>/<workflow-file-name>/telegram_bot?__token=<your-github-personal-token>, learn more about webhook url, see here, here is a CURL example to set webhook:

    curl --request POST 'https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/setWebhook' \
    --header 'Content-Type: application/json' \
    --data-raw '{
        "url": "https://webhook.actionsflow.workers.dev/<owner>/<repo>/<workflow-file-name>/telegram_bot?__token=<your-github-personal-token>"
    }'
  • event, optional, string or string[], telegram message type, allowed types:

    • text
    • animation
    • audio
    • channel_chat_created
    • contact
    • delete_chat_photo
    • dice
    • document
    • game
    • group_chat_created
    • invoice
    • left_chat_member
    • location
    • migrate_from_chat_id
    • migrate_to_chat_id
    • new_chat_members
    • new_chat_photo
    • new_chat_title
    • passport_data
    • photo
    • pinned_message
    • poll
    • sticker
    • successful_payment
    • supergroup_chat_created
    • video
    • video_note
    • voice

    if event is not provided, all message will be triggered. example: ["text","photo"],text

  • requestParams, optional, we use Axios for polling data, so your can pass all params that axios supported. For example:

    on:
      telegram_bot:
        url: https://jsonplaceholder.typicode.com/posts

Outputs

This trigger's outputs will be the item of the telegram message, you can see it here

An outputs example:

{
  "message_id": 7,
  "from": {
    "id": 1056059698,
    "is_bot": false,
    "first_name": "Owen",
    "last_name": "Young",
    "language_code": "en"
  },
  "chat": {
    "id": 1056059698,
    "first_name": "Owen",
    "last_name": "Young",
    "type": "private"
  },
  "date": 1598383043,
  "text": "test",
  "update_id": 791185172
}

You can use the outputs like this:

on:
  telegram_bot:
    token: ${{ secrets.TELEGRAM_BOT_TOKEN }}
jobs:
  print:
    name: Print
    runs-on: ubuntu-latest
    steps:
      - name: Print Outputs
        env:
          telegram_outputs: ${{ toJson(on.telegram_bot.outputs) }}
        run: |
          echo telegram: $telegram_outputs