我是电报Bot程序员的新手,想写一个简单的控制台应用程序来发送电报信息。
经过一些research我开发了这些代码没有错误,但它不起作用,也不发送我的消息。 当我跟踪我的代码时,我发现结果对象上的状态是"等待激活"什么;这是什么意思?
我注册了我的机器人并拥有API访问令牌并在此代码上使用它。
请指导我:)
static void Main(string[] args)
{
Task<Message> result;
result= DoSomethingAsync();
Console.WriteLine();
}
static async Task<Message> DoSomethingAsync()
{
var Bot = new Telegram.Bot.Api("my API access Token");
return await Bot.SendTextMessage("@blablavla", "test message");
}
答案 0 :(得分:2)
您可以构建自己的async main
- 方法,如下所示:
static void Main(string[] args)
{
MainAsync(args).Wait();
Console.ReadKey();
}
static async Task MainAsync(string[] args)
{
Message result;
Console.WriteLine("Sending Message...");
result = await DoSomethingAsync();
Console.WriteLine("Message sent...");
Console.WrtieLine(result);
}
static async Task<Message> DoSomethingAsync()
{
var Bot = new Telegram.Bot.Api("my API access Token");
return Bot.SendTextMessage("@blablavla", "test message"); // It's your last call to an async function in an async function, no need to await it here.
}
这应该做你想要的。但请注意,它未经测试!
答案 1 :(得分:1)
首先创建你的机器人
Telegram.Bot.Api bot = new Telegram.Bot.Api("my API access Token");
然后在任何你想要的方法中编写这样的代码。当此方法运行时,它会在每封要发送的消息后将消息发送给用户。并将在控制台中通知你。
int offset = 0;
while (true)
{
Telegram.Bot.Types.Update[] updates = bot.GetUpdates(offset).Result;
foreach (var update in updates)
{
offset = update.Id + 1;
if (update.Message == null)
continue;
Console.WriteLine("Sending Message...");
bot.SendTextMessage(update.Message.Chat.Id, "your text");
Console.WriteLine("Message sent...");
update.Message.Text);
}
}
试试吧
答案 2 :(得分:0)
您可以使用This Example收件人并接收发送讯息,位置,内联键盘,文字键盘,照片和...
在此示例中,您可以查看由您的库创建的GetUpdate和Webhook代码
此示例基于Telegram Bot API MrRoundRobin