11

我找不到通过 C# 电报协议发送消息的示例。我尝试使用但失败了。你能给我一些例子吗?

4

6 回答 6

14

TLSharp 是 C# 上 Telegram API 的基本实现。在这里查看https://github.com/sochix/TLSharp

于 2015-04-10T13:46:16.200 回答
2

对于我的机器人,我使用Telegram.Bot nuget 包。完整的示例代码在这里

这是发送消息以回复传入消息的示例。

// create bot instance
var bot = new TelegramBotClient("YourApiToken");

// test your api configured correctly
var me = await bot.GetMeAsync();
Console.WriteLine($"{me.Username} started");

// start listening for incoming messages
while (true) 
{
    //get incoming messages
    var updates = await bot.GetUpdatesAsync(offset);
    foreach (var update in updates)
    {
        // send response to incoming message
        await bot.SendTextMessageAsync(message.Chat.Id,"The Matrix has you...");
    }
}
于 2018-01-06T22:36:09.430 回答
2

您可以使用WTelegramClient库连接到 Telegram Client API 协议(作为用户,而不是机器人)

该库非常完整,但也非常易于使用。按照GitHub 上的 README进行简单介绍。

向某人发送消息可以很简单:

using TL;

using var client = new WTelegram.Client(); // or Client(Environment.GetEnvironmentVariable)
await client.LoginUserIfNeeded();
var result = await client.Contacts_ResolveUsername("USERNAME");
await client.SendMessageAsync(result.User, "Hello");

//or by phone number:
//var result = await client.Contacts_ImportContacts(new[] { new InputPhoneContact { phone = "+PHONENUMBER" } });
//client.SendMessageAsync(result.users[result.imported[0].user_id], "Hello");

于 2021-10-15T03:50:52.640 回答
0

最简单的方法是将 http 请求作为 url 字符串直接发送到 Telegram BOT API,您甚至可以在浏览器中测试这些 url 字符串,请在此处查看我的另一个答案中的详细信息: https ://stackoverflow.com/a/57341990/ 11687179

于 2019-08-03T21:08:46.283 回答
0

第一步,您必须在 botfather 中生成一个机器人,然后在 C# 中使用下面的代码

    private void SendMessage(string msg)
    {
        string url = "https://api.telegram.org/{botid}:{botkey}/sendMessage?chat_id={@ChanalName}&text={0}";
        WebClient Client = new WebClient();
        /// If you need to use proxy 
        if (Program.UseProxy)
        {
            /// proxy elements are variable in Program.cs
            Client.Proxy = new WebProxy(Program.ProxyUrl, Program.ProxyPort);
            Client.Proxy.Credentials = new NetworkCredential("hjolany", "klojorasic");
        }
        Client.DownloadString(string.Format(url, msg));
        }));
    }
于 2020-07-16T13:49:21.860 回答
-1

Telegram 有一个官方 API,可以完全满足您的需求,但您必须查看 http 请求。

以下是发送消息的文档:

功能

messages.sendMessage

参数

peer    InputPeer   User or chat where a message will be sent
message string  Message text
random_id   long    Unique client message ID required to prevent message resending

查询示例

(messages.sendMessage (inputPeerSelf) "Hello, me!" 12345678901)

返回错误

Code    Type    Description
400 BAD_REQUEST PEER_ID_INVALID Invalid peer
400 BAD_REQUEST MESSAGE_EMPTY   Empty or invalid UTF8 message was sent
400 BAD_REQUEST MESSAGE_TOO_LONG    Message was too long.

Current maximum length is 4096 UTF8 characters

如需完整文档,请访问此处

于 2015-03-31T08:38:11.480 回答