我也浏览了很多论坛和 telegram API。但无法得到正确的答案。
这是我的主要问题。我的数据库中有用户列表及其手机号码,我想通过这些用户的电报向他们发送消息。为此我需要他们的聊天 ID。我如何通过他们的手机号码检索该信息?如果我有聊天 ID,我可以使用以下参考向他们发送消息。
我访问了以下链接,由用户自己手动从 BOT 获取聊天 ID。但我想要脚本自动执行。
谢谢。
我正在使用telegraf bot 框架编写一个非常简单的 telegram-bot 。\n到目前为止,它使用.hears和回复了一些简单的命令.on,到目前为止一切正常。
现在我实现了另一种.hears等待字符串的方法Miez。一旦它“听到”这个字符串,它就应该.replyWithDocument包含一个cat-api url。根据 cat-api 的 URL 在每次调用时都会提供一个随机的 cat-gif。到目前为止我的代码:
const Telegraf = require(\'telegraf\')\n\nconst app = new Telegraf(\'<MY_TOKEN>\')\n\n// Connect/Express.js integration\nconst express = require(\'express\')\nconst expressApp = express()\n\nexpressApp.set(\'port\', (process.env.PORT || 5000));\n\n\napp.command(\'start\', (ctx) => {\n console.log(\'start\', ctx.from)\n ctx.reply(\'Welcome!\')\n})\n\napp.hears(\'Hi\', (ctx) => ctx.reply(\'Hallo!\'))\napp.hears(\'Marco\', (ctx) => ctx.reply(\'Polo\'))\napp.on(\'sticker\', (ctx) => ctx.reply(\'\xe2\x9d\xa4\'))\n\napp.hears(\'Miez\',(ctx) => {\n try{\n return ctx.replyWithDocument({\n url: \'http://thecatapi.com/api/images/get?format=src&type=gif\',\n filename: \'cat.gif\'\n })\n\n }catch(error){\n return ctx.reply("Miau");\n }\n})\nRun Code Online (Sandbox Code Playgroud)\n\n正如您所看到的,我将其包装.replyWithDocument在 try/catch 块中。我这样做是因为给定的 …
我正在尝试在电报机器人中编辑消息。我正在使用以下代码。我可以毫无问题地发送消息,但编辑消息部分不起作用。它只是没有任何作用!
<?php
if ($_SERVER['HTTPS'] != "on") {
$url = "https://". $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
header("Location: $url");
exit;
}
$botToken="XXXX...";
$website="https://api.telegram.org/bot".$botToken;
$content = file_get_contents("php://input");
$update = json_decode($content, true);
$chatId = $update["message"]["chat"]["id"];
$message = $update["message"]["text"];
switch($message) {
case("action"):
sendMessage($chatId, "What should I do?");
break;
case("add"):
editMessageText($chatId, "should I add?");
break;
default:
sendMessage($chatId, "default");
}
function sendMessage($chatId, $message) {
$url = $GLOBALS[website]."/sendMessage? chat_id=".$chatId."&text=".urlencode($message)."&reply_markup".$reply1;
file_get_contents($url);
}
function editMessageText($chatId, $messageId, $message) {
$url = $GLOBALS[website]."/editMessageText?chat_id=".$chatId."&message_id=".$messageId."&text=".urlencode($message);
file_get_contents($url);
}
function file_get_contents_curl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE); …Run Code Online (Sandbox Code Playgroud) 我最近注册了使用电报机器人 API,但是当我查看每个示例时,它说要包含我们自己的 API TOKEN,但没有提到如何获取令牌。
当我访问 Telegram 站点时,它向我显示的只是一些 api id、hash 和一个 RSA 密钥对。
如何生成电报 API令牌或如何以及从何处获取?
这是我的一段代码
bot.edit_message_text(chat_id = CHAT_ID, message_id = MESSAGE_ID, text = "message has been updated", reply_markup=inline_keyboard)
Run Code Online (Sandbox Code Playgroud) 我现在正在为我的电报开发一个 python 脚本。问题是:
我如何知道我的机器人何时被添加到组中?有没有事件或其他什么东西?我希望 Bot 向他添加的群组发送消息,向其打招呼以及他可以使用的功能。
我不知道是否有任何类型的处理程序能够处理这个问题。
我需要在电报应用程序中读取一些公共频道的消息,我想将电报频道文本存储在一个文本文件中。我想使用python。我尝试使用 Telethon,但它太复杂了。我的代码有一些错误:
from telethon.tl.functions.messages import (GetHistoryRequest)
from telethon.tl.types import (
PeerChannel
)
client = TelegramClient(username, api_id, api_hash)
client.start()
offset_id = 0
limit = 100
all_messages = []
total_messages = 0
total_count_limit = 0
while True:
print("Current Offset ID is:", offset_id, "; Total Messages:", total_messages)
history = client(GetHistoryRequest(
peer="https://t.me/futballbadnews",
offset_id=offset_id,
offset_date=None,
add_offset=0,
limit=limit,
max_id=0,
min_id=0,
hash=0
))
if not history.messages:
break
messages = history.messages
for message in messages:
all_messages.append(message.to_dict())
offset_id = messages[len(messages) - 1].id
total_messages = len(all_messages)
if total_count_limit != 0 …Run Code Online (Sandbox Code Playgroud) 好的,所以我一直打算使用 Telethon 用 Python 在电报上自动化一些事情,但我不确定我是否理解它的要点。
首先,您需要一个 api_id 和一个 api_hash。为此,您转到my.telegram并转到 API 开发工具。在那里你会收到一个代码到你的电报安卓手机,提交后,你会收到一个唯一的 id/hash。第一个问题,您发送此代码是为了生成一个需要的应用程序吗?
现在在python中,您可以按如下方式启动客户端。
from telethon import TelegramClient
api_id=12345
api_hash='abcdef12345ghij'
client=TelegramClient('name of the session',api_id,api_hash)
Run Code Online (Sandbox Code Playgroud)
您可以尝试连接客户端,但它可能会导致未授权或手机未注册,因此您可以使用 start ,这将决定是登录还是注册。在start中可以设置的参数中,有一个是force_sms (bool, optional)强制电报共享短信注册登录所需的代码。我的问题是,如果电话没有注册,还有什么其他方式可以使用电报?我的意思是,他们无法将其发送到移动应用程序,因为该手机没有。
如果电话未注册是可能的,这是否意味着您获得 ID/哈希的电话不一定与您创建客户端的电话相同?
由于此方法有回调,您可以输入发送到手机的代码并连接到电报。
另一种连接客户端的方法是使用StringSession. 我找到了这段代码:
from telethon.sync import TelegramClient
from telethon.sessions import StringSession
# Generating a new one
with TelegramClient(StringSession(), api_id, api_hash) as client:
print(client.session.save())
# Converting SQLite (or any) to StringSession
with TelegramClient(name, api_id, api_hash) as client:
print(StringSession.save(client.session))
# Usage
string = '1aaNk8EX-YRfwoRsebUkugFvht6DUPi_Q25UOCzOAqzc...'
with TelegramClient(StringSession(string), …Run Code Online (Sandbox Code Playgroud) 我想通过电报 API 在 Telegram 的 telegraph.ph 网站上创建和编辑页面。
https://telegra.ph/api#createPage
为此,我需要知道access token电报帐户的名称。我一直在使用谷歌搜索高低如何做,但仍然找不到任何答案。
我正在使用电报 python 库。
https://github.com/python273/telegraph
我正在使用 python 3.7
我已经在 ubuntu 上通过 pip 和 pip3 安装了 python-telegram-bot 包,并尝试加载它:
from telegram.ext import Updater, CommandHandler
Run Code Online (Sandbox Code Playgroud)
然后我得到:
File "/usr/local/lib/python3.5/dist-packages/telegram/base.py", line 42
_id_attrs: Tuple[Any, ...] = ()
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
我在 python 2.7 版本中遇到了类似的错误。“base.py”文件有一行带有“ _id_attrs:”,我已经使用 python 一段时间了,但从未见过变量名后跟冒号。使这一行对 python 可读是什么意思。
telegram ×10
python ×6
telegram-bot ×6
php ×2
python-3.x ×2
telethon ×2
api ×1
bots ×1
events ×1
heroku ×1
javascript ×1
telegraf ×1
telegraph ×1