我几天前在youtube上看过这个教程.这非常有趣,所以我决定制作一个自己的机器人.我使用教程中的代码作为模板:
<?php
$bottoken = "*****";
$website = "https://api.telegram.org/bot".$bottoken;
$update = file_get_contents('php://input');
$updatearray = json_decode($update, TRUE);
$length = count($updatearray["result"]);
$chatid = $updatearray["result"][$length-1]["message"]["chat"]["id"];
$text = $updatearray["result"][$length-1]["message"]["text"];
if($text == 'hy'){
file_get_contents($website."/sendmessage?chat_id=".$chatid."&text=hello");
}
elseif($text == 'ciao'){
file_get_contents($website."/sendmessage?chat_id=".$chatid."&text=bye");
}
Run Code Online (Sandbox Code Playgroud)
如果我手动执行脚本,脚本会起作用.但是,当我使用webhook时,它不再起作用了.该教程说这$update = file_get_contents('php://input');是正确的方式,以前使用$update = file_get_contents($website."/getupdates");.我的问题如何php://input自动执行脚本?该脚本位于"one.com"的服务器上,证书也来自"one.com".
我是新手创建电报机器人,我真的不知道从哪里开始.我唯一知道的是PHP.
简单化我在其上安装了Windows Server 2008 R2的VPS,并且我使用了自签名证书
openssl req -newkey rsa:2048 -sha256 -nodes -keyout server.key -x509 -days 365 -out server.pem -subj "/C=US/ST=New York/L=Brooklyn/O=Example Brooklyn Company/CN=YOURDOMAIN.EXAMPLE"
Run Code Online (Sandbox Code Playgroud)
然后我用PEM将PEM转换为CER
openssl x509 -inform PEM -in server.pem -outform DER -out server.cer
Run Code Online (Sandbox Code Playgroud)
我安装了WAMP服务器并将其设置为使用server.cer和server.key作为证书和密钥然后我测试了HTTPS(443)并且它工作正常.
然后我在chrome上安装了一个REST客户端,并将bot.php和PEM文件的URL作为多部分表单数据发送,正如官方文档所述.
现在我收到这个错误:
{
ok: false,
error_code: 400,
description: "Error: Bad webhook: Posix Error: Success: getaddrinfo: Name or service not known"
}
Run Code Online (Sandbox Code Playgroud)
而且......我现在在这里!:| 向你寻求帮助有什么问题,我应该如何解决这个问题
提前致谢 :)
注意:我没有域名我正在使用我的VPS的IP
我想知道什么是最好的方法来知道手机号码是否已经注册到Telegram信使?
谢谢.
我有一个关于Telegram机器人的问题,几周前我创建了一个bot,它可以正常工作,但是getUpdates方法的行为异常;确实,如果我使用链接:
https://api.telegram.org/bot<token>/getUpdates
Run Code Online (Sandbox Code Playgroud)
现在我看不到任何消息,但是如果我启动一个新的漫游器,则此链接可以像创建另一个漫游器的第一天一样正常工作。
在特定时间间隔后,此链接会停止工作吗?有办法重新启用它吗?
提前致谢
是否可以通过API检查是否有人删除了Telegram中的Bot Chat?
我的测试:目前,如果用户删除聊天,新消息将不会停止发送给用户.
我的电报信息有问题,它是问题概述:
您将通过/启动命令我的机器人开始发送消息,但是几天之后它将停止发送消息,如果客户端传递了一些消息,客户端机器人再次开始发送消息,我可以做什么来定义它将停止多少天后,是否文档在哪里?也许有些配置错了?谁有这种情况请回复?
我也总是这个api呼叫发送消息:
https://api.telegram.org/bot{TELEGRAM_BOT}/sendMessage?disable_web_page_preview=false&chat_id=$chat_id&text={TEXT}
Run Code Online (Sandbox Code Playgroud) 我已经创建了一个电报机器人并按照文档中的描述设置了一个 webhook。出于测试目的,我已经设置了它,因此一旦您向机器人发送一条消息,它就会用相同的消息回复。
现在我遇到的问题是来自电报的更新非常缓慢,而且我还没有收到一些消息。我是不是遗漏了什么,还是 webhook 方法真的很慢?
我想设置,Telegram Webhook但我没有httpsURL,我也不想处理ssl证书.
我可以使用https URL或不设置https证书来解决此问题吗?
电报webhook desc:https://core.telegram.org/bots/api#setwebhook
我正在使用python-telegram-bot包装器,我一直在尝试在Heroku上托管一个简单的回声电报机器人,以适应用于Google App Engine 的预先存在的示例以及维基上的webhook指南,但无济于事.
我似乎无法使webhook工作,并且机器人能够正确地回显消息.
我似乎无法弄清楚什么是错的,所以任何帮助指出我正确的方向将非常感谢!
我的尝试详述如下.
import telegram
from os import environ
from telegram.ext import Updater
from flask import Flask, request
from credentials import TOKEN, APP_URL
app = Flask(__name__)
global bot
bot = telegram.Bot(token=TOKEN)
@app.route('/' + TOKEN, methods=['POST'])
def webhook_handler():
if request.method == "POST":
# retrieve the message in JSON and then transform it to Telegram object
update = telegram.Update.de_json(request.get_json(force=True))
chat_id = update.message.chat.id
# Telegram understands UTF-8, so encode text for unicode compatibility
text …Run Code Online (Sandbox Code Playgroud) 我想创建一个Telegram机器人,所以我按照说明进行操作并得到:
做完了!祝贺您的新机器人。您可以在t.me/RonGuruBot中找到它。现在,您可以添加有关机器人的部分和个人资料图片的描述,请参阅/ help以获取命令列表。顺便说一句,当您完成酷机器人的创建后,如果您想要一个更好的用户名,请ping我们的Bot支持。在执行此操作之前,只需确保机器人已完全运行即可。
使用此令牌访问HTTP API:318659684:AAFdR9YE4DEwg1NQitSIuifPotoA-3f6cUw
但是,当我在Chrome中输入以下网址时:
https://api.telegram.org/bot318659684:AAFdR9YE4DEwg1NQitSIuifPotoA-3f6cUw/getUpdates
返回的JSON是:
{“ ok”:真,“结果”:[]}
而且文档使我相信JSON回复中应该包含更多内容。