如何将python输出发送到电报频道而不是组和Gmail电子邮件组

时间:2018-10-27 03:32:01

标签: python python-3.x email telegram telegram-bot

嗨,我有一个python程序,每隔一小时产生一次结果。结果可能是任何事情。该程序将在本地计算机或虚拟专用网络中运行。

我有两个要求 1.将此python生成的结果自动发送到一个电报组[组名“ ourworld”](由我创建),无需用户干预。 (我的台式机电报客户端正在运行,或者web.telegram.org在同一系统中运行)

  1. 将此结果发送到gmail组电子邮件ID。

有什么方法可以满足此要求。是否有任何可用的代码来完成这项工作。请分享信息和详细信息。

编辑:

我面临的问题:

  

1。使用BotFather创建一个Bot。   2.将此Bot添加到我的组中,这里出现错误,无法添加成员,因此在组中将Bot添加为管理员   3.BOT的令牌记下来。   4.尝试获取ChatId         在这个论坛(https://web.telegram.org/#/im?p=g154513121)中,有人说p = g之后的数字是图表ID,在我的情况下,没有   数字显示这样的@testingname。

     
      
  1. 使用这种方法尝试获取聊天ID https://api.telegram.org/bot738909732:AAE-2l7xAAlYHBXprK_a_bex09g9DMZbbDI/getme   所以这里738909732变成了一个聊天ID(在这种情况下,为什么我们需要单独   调用图表ID)   这是真实的回应!这里的聊天ID是我的“ testingname”的ID,没有为该组生成图表ID。   6.现在打包URL以查看响应,我收到此错误。
  2.   

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

如果我在浏览器中运行此输出

  

{“确定”:false,“错误代码”:400,“描述”:“错误请求:不聊天   found“} {” ok“:false,” error_code“:403,” description“:” Forbidden:bot   无法向机器人发送消息”}

如何解决此问题并使BOT工作。为什么我无法将BOT添加到显示错误“无法添加用户”的组中?

如何使此电报组正常工作。

注意:使用BotFather BOT创建的

4 个答案:

答案 0 :(得分:1)

要在没有任何用户干预的情况下将消息发送到电报“组”,您需要电报机器人。使用电报bot-father创建一个。看看这个link。在创建漫游器时还请注意令牌。此方法仅适用于电报组.Telegram频道,这是另一种要遵循的方法,MarxBabu在下面的答复中对此进行了回答。

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) 

要获取chat_id,请遵循here中提到的步骤。注意:群组聊天ID始终以'-'开头。例如组chat_id -356163873。令牌和chat_id只是您向电报组发送消息所需要的。

要发送群组电子邮件,您需要搜索更多,因为我不太了解

答案 1 :(得分:0)

我让它在Raspberry pi上运行。您必须寻找botfather来获取电报令牌。

import telepot 
from telepot.loop import MessageLoop
telegram_token = 'xxxx:xxxxxx'
user = 4444444
bot = telepot.Bot(telegram_token)
bot.sendMessage(user, 'Hey!')

要配置gmail,我现在这里没有东西...

答案 2 :(得分:0)

您可以通过SMTP或使用Mailgun Api

用python发送电子邮件

我个人更喜欢使用Mailgun,因为它易于设置,发送电子邮件与向Mailgun发送发帖请求一样容易。 您可以获取免费版本的api,并将您的群组电子邮件ID添加到沙箱中(以避免垃圾邮件),然后使用请求通过给定的api令牌发布电子邮件

答案 3 :(得分:0)

如果要向电报组发送消息,bipin_s提供的上述方法适用于chat_id = -xxxxxx。这是正确的id,后跟-符号。

对于“电报频道”中的发布消息,需要对URL进行较小的更改。URL的框架必须如下所示。

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

将TokenID替换为您的BOT令牌ID,将yourChannelChatID替换为您的频道图表ID。请注意,该频道ID不是负ID。

代码将如下所示

import request

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

“ URL”中的“消息”将在电报频道中发布。

如何获取频道ID? 在浏览器中转到https://web.telegram.org/#/im,登录后立即搜索您的“频道”。现在在浏览器地址栏中,您将看到一个像https://web.telegram.org/#/im?p=@llliopppppsssssr

的链接

p = @ llliopppppssssssr在等号之后,是频道聊天ID。