- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我尝试使用自定义键盘创建消息。所以我发送请求
reply_markup = {"keyboard":[["1"],["2"]],"resize_keyboard":"True","one_time_keyboard":"True"}
但是,它不起作用。
我尝试了所有的内容类型:
我还尝试通过两种不同的方式发送消息。这段代码有什么问题?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Net;
namespace DutyReminder
{
class Program
{
static void Main(string[] args)
{
string message = "message";
string message1 = "message1";
string botid = "165749848:AAGtjn42bajF-WxdKosTF07sLwJPYlqiDZE";
string chatid = "38651047";
Sender.send("", "https://api.telegram.org/bot" + botid + "/sendmessage?chat_id=" + chatid + "&text=" + message + "&reply_markup={\"keyboard\":[[\"1\"],[\"2\"]],\"resize_keyboard\":\"True\",\"one_time_keyboard\":\"True\"}");
Sender.HttpPost("https://api.telegram.org/bot" + botid + "/sendmessage?chat_id=" + chatid + "&text=" + message1 + "&reply_markup={\"keyboard\":[[\"1\"],[\"2\"]],\"resize_keyboard\":\"True\",\"one_time_keyboard\":\"True\"}", "");
}
}
static class Sender
{
static public void send(string message, string url)
{
// Create a request using a URL that can receive a post.
WebRequest request = WebRequest.Create(url);
// Set the Method property of the request to POST.
request.Method = "POST";
// Create POST data and convert it to a byte array.
//string postData = "{\"value1\":\"" + message + "\"}";
string postData = message;
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
// Set the ContentType property of the WebRequest.
request.ContentType = "application/x-www-form-urlencoded";
// Set the ContentLength property of the WebRequest.
// request.ContentLength = byteArray.Length;
// Get the request stream.
Stream dataStream = request.GetRequestStream();
// Write the data to the request stream.
dataStream.Write(byteArray, 0, byteArray.Length);
// Close the Stream object.
dataStream.Close();
// Get the response.
WebResponse response = request.GetResponse();
// Display the status.
Console.WriteLine(((HttpWebResponse)response).StatusDescription);
// Get the stream containing content returned by the server.
dataStream = response.GetResponseStream();
// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader(dataStream);
// Read the content.
string responseFromServer = reader.ReadToEnd();
// Display the content.
Console.WriteLine(responseFromServer);
// Clean up the streams.
reader.Close();
dataStream.Close();
response.Close();
}
static public string HttpPost(string URI, string Parameters)
{
System.Net.WebRequest req = System.Net.WebRequest.Create(URI);
// req.Proxy = new System.Net.WebProxy(ProxyString, true);
//Add these, as we're doing a POST
req.ContentType = "application/x-www-form-urlencoded";
req.Method = "POST";
//We need to count how many bytes we're sending. Post'ed Faked Forms should be name=value&
byte[] bytes = System.Text.Encoding.ASCII.GetBytes(Parameters);
req.ContentLength = bytes.Length;
System.IO.Stream os = req.GetRequestStream();
os.Write(bytes, 0, bytes.Length); //Push it out there
os.Close();
System.Net.WebResponse resp = req.GetResponse();
if (resp == null) return null;
System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream());
return sr.ReadToEnd().Trim();
}
}
}
最佳答案
使用以下而不是 URI 消息发送:
var bot = new Api("YourApiToken");
.
.
.
var rmu = new ReplyKeyboardMarkup();
rmu.Keyboard =
new string[][]
{
new string[] {"1-1", "1-2"},
new string[] {"2"},
new string[] {"3-1", "3-2" , "3-3" }
};
await bot.SendTextMessage(update.Message.Chat.Id, msg, false, 0, rmu);
已更新
使用较新版本的 API:
var bot = new Api("YourApiToken");
.
.
.
var rkm = new ReplyKeyboardMarkup();
rkm.Keyboard =
new KeyboardButton[][]
{
new KeyboardButton[]
{
new KeyboardButton("1-1"),
new KeyboardButton("1-2")
},
new KeyboardButton[]
{
new KeyboardButton("2")
},
new KeyboardButton[]
{
new KeyboardButton("3-1"),
new KeyboardButton("3-2"),
new KeyboardButton("3-3")
}
};
await bot.SendTextMessage(update.Message.Chat.Id, msg, false, false, 0, rkm );
关于c# - C# 中的 Telegram Bot 自定义键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34899614/
我在网上看到有一些程序可以使用 Telegram CLI。 我想在他们之间做出选择 对于 Telegram bot API,有更多文档解释其功能,但对于 CLI,解释其特性的文档不多 似乎唯一了解的方
当我从按钮获得触发器时,我正在尝试使用 Telethon 发送 Telegram 消息。 当由 NewMessage 事件等事件触发时,我的 Telethon 方法工作正常,但是如何使用其他触发器(即
API 对象 User有房产language_code - Telegram 如何确定用户的语言,以及如何更改它? 我希望根据 language_code 为用户创建响应语言,但我不确定我是否可以信任
我有很多 Telegram channel ,他们以 24\7 的格式发送消息 “购买 usdjpy sl 145.2 tp 167.4” “eurusd 卖出 sl 145.2 tp 167.4”
我对Telegram机器人有疑问。 我需要键盘和嵌入式键盘,是否可以同时启用这两个功能? 最佳答案 根据Telegram documentation,当前不可能同时为reply_markup传递两个或
有人知道 Telegram 如何制作丰富的预览吗?了解它对我正在进行的开发非常有用。它是服务器端的特性,所以我认为代码不可用。不是吗? 最佳答案 它使用 Open Graph protocol :ht
Telegram是一种基于云的聊天服务。他们所有的客户端都是开源的。我想知道是否有办法在我自己的服务器上托管“私有(private)” Telegram 服务。 如果没有,是否有任何东西可以提供 te
为了发送常规消息,我使用 - const uri = `https://api.telegram.org/bot${token}/sendMessage?chat_id=${channelId}&
我正在尝试创建一个机器人,它可以读取/接收特定 channel 中的所有消息并将它们发送给我。我的问题是我找不到在我的机器人中访问这些消息的方法 重要的是: 我不是该 channel 的管理员或创建者
任何人都可以告诉我如何从我的 Telegram Bot 获取有关用户的信息。想象一下我的机器人是我 channel 中的管理员用户,我想获取我的 channel 用户列表或在新用户加入时引起注意。我怎
举个例子,我知道这个帐户存在“https://t.me/everexio ”,但当我单击查看时,它失败,并显示“没有包含您提供的用户名的 Telegram 帐户。”我在不同的群体中多次看到过这个问题。
我知道有一些特殊的网站,例如 Youtube、Vimeo 和...,我可以将我的视频上传到其中一个网站,并将其链接放在 Telegram 的消息中,在下面显示其大视频预览消息并通过其 InApp-Pl
我有一个机器人可以创建包含用户提供的一些 URL 的消息。Telegram 为这些 url 创建链接预览。预览已缓存。 有时 url 的内容发生变化,那么 Telegram 提供的预览就过时了。所以我
telegram 提供了一种衡量 channel 消息浏览量的方法。我很好奇是否有一种方法可以衡量特定群体每月的每月活跃用户或总独立浏览量。 最佳答案 简短回答:是。 您可以使用许多在线工具或机器人分
我如何在 Telegram 机器人上创建一个三划线菜单,类似于他们对 Jobs 机器人所做的那样?它应该与此类似: 我们如何称呼这种菜单? 最佳答案 您可以使用机器人父亲命令添加将显示在菜单上的命令。
网站telegram如何给登录用户发送消息? Telegram Login for Websites Telegram bots are a powerful communication tool,
我想连接一个简单的 Telegram Bot 来读取来自群组(我不是管理员)的消息。我已经将机器人添加到组中,但它不起作用。 这是我在 Python 中的代码: import telepot from
我想使用它的 deep linking 通过 Telegram 设置身份验证接口(interface)。 为了进行身份验证,在我的应用中,我要求用户点击如下链接: https://telegram.m
Telegram 中是否有任何事件 API 机器人 或 核心检测谁查看了用户或 channel 或群组或机器人配置文件? 一些机器人和应用程序声称他们可以做到这一点,但我没有在 Telegram AP
我正在尝试通过电报bot中的SendVoice方法发送语音消息,但是它将语音作为文档文件发送(而不是播放)。 ffmpeg将ogg文件转换为opus编码。 https://api.telegram.o
我是一名优秀的程序员,十分优秀!