Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to send python output to telegram CHANNEL not to Group and gmail email group

Hi I have a program in python that generates results every one hour. The result can be of anything.This program will run in local machine or in the virtual private network.

I have two requirements 1. Send this python generated result to one telegram group [Group name "ourworld"](created by me) automatically without user intervention . (I have desktop telegram client running or web.telegram.org running in the same system)

  1. Send this result to gmail group email ID.

what are the methods available to achieve this requirement .Is there any working code available to do this job .Please share the info and details.

Edit:

The Issue that i am facing :

1.created a Bot using BotFather. 2.Adding this Bot to my Group ,Here i get an error could not add an member So added the Bot as admin in the group 3.Token of the BOT noted down. 4. Trying to get ChatId in this forum (https://web.telegram.org/#/im?p=g154513121) someone says number after p=g is the chartid ,In my case there is no number it shows @testingname like this.

  1. Using this approach trying to get the Chat ID https://api.telegram.org/bot738909732:AAE-2l7xAAlYHBXprK_a_bex09g9DMZbbDI/getme so here 738909732 become a chat Id (in this case why we need seperate call for the chart id) here it is true as response coming! Here the chat id is the ID of the my "testingname" no chart id generated for the group. 6.Now packing the URL to see the response i am getting this error.

https://api.telegram.org/bot738909732:AAE-2l7xAAlYHBXprK_a_bex09g9DMZbbDI/sendMessage?chat_id=738909732&text=testing

the output if i run this in browser

{"ok":false,"error_code":400,"description":"Bad Request: chat not found"} {"ok":false,"error_code":403,"description":"Forbidden: bot can't send messages to bots"}

How to resolve this issue and make the BOT working .why i am not able to add BOT to my group that says error "Cant Add user"

How to make this telegram group working.

Note : Using BotFather BOT created

like image 624
Marx Babu Avatar asked Oct 27 '18 03:10

Marx Babu


People also ask

How can I send message to Telegram using Python?

Getting StartedOpen the telegram app and search for @BotFather. Click on the start button or send “/start”. Then send “/newbot” message to set up a name and a username. After setting name and username BotFather will give you an API token which is your bot token.

How can I send message to admin in Telegram channel Python?

Send Message to Telegram using Pythonpost(apiURL, json={'chat_id': chatID, 'text': message}) print(response. text) except Exception as e: print(e) send_to_telegram("Hello from Python!")


2 Answers

In case for sending message to telegram group the above method provided by bipin_s works where the chat_id = -xxxxxx is used.This is correct id followed by - symbol to be used.

For Posting message in the "telegram channel " a minor change needs to be done in the URL.The URL must be framed as below .

url = "https://api.telegram.org/botTokenID/sendMessage?chat_id=@yourChannelChatID&text=message"

Replace the TokenID with your BOT tokenID replace the yourChannelChatID with your channel chart id.Please note that the channel id is not negative id.

the code will look like this

import request

url = "https://api.telegram.org/botXyz:wwwwDFSJSJSAX/sendMessage?chat_id=@telechanneltesting&text=message"
requests.post(url)

Here the "message" as in the URL it will be posted in telegram channel.

How to get channel id ? Go to https://web.telegram.org/#/im in browser ,after login now search your "channel".Now in the browser address bar you will one link like https://web.telegram.org/#/im?p=@llliopppppsssssr

p=@llliopppppsssssr after the equal symbol what comes is channel chat ID.

like image 90
Marx Babu Avatar answered Sep 22 '22 11:09

Marx Babu


to send message to the telegram "group" without any user intervention , you require a telegram bot. create one using telegram bot-father. take a look at this link. also note the token while creating the bot. This method will work only for telegram Group .Telegram channel another method to be followed which MarxBabu answered below in his answers post.

import requests

# telegram url
url = "https://api.telegram.org/bot<Token>"

def send_mess(text):
    params = {'chat_id':-xxxxxxx, 'text': text}
    response = requests.post(url + 'sendMessage', data=params)
    return response


send_mess(result_you_want_to_send) 

to get the chat_id follow the steps mentioned here. note: group chat id's always starts with '-' . e.g. of group chat_id -356163873. A token and chat_id is only what you require to send message to telegram group.

for sending group emails you have to search more as i do not know much

like image 30
bipin_s Avatar answered Sep 25 '22 11:09

bipin_s