我有一个问题;
如何使用来自TLSharp Class的电话API(https://core.telegram.org/methods)制作类或方法? 在TLSharpTest.cs我有一些例子,但我无法理解我如何在C#中编写Telegram API :(
如果我想收到消息,我该怎么办?
我试过https://github.com/sochix/TLSharp#contributing中的示例 但是在这种方法中:public InitConnectionRequest(int someParameter)
{
_someParameter = someParameter;
}
说:方法必须有一个返回类型,
为什么?
答案 0 :(得分:2)
Agha Mehdi,
这个例子非常有用:
using TeleSharp.TL;
using TLSharp;
using TLSharp.Core;
namespace TelegramSend
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
TelegramClient client;
private async void button1_Click(object sender, EventArgs e)
{
client = new TelegramClient(<your api_id>, <your api_key>);
await client.ConnectAsync();
}
string hash;
private async void button2_Click(object sender, EventArgs e)
{
hash = await client.SendCodeRequestAsync(textBox1.Text);
//var code = "<code_from_telegram>"; // you can change code in debugger
}
private async void button3_Click(object sender, EventArgs e)
{
var user = await client.MakeAuthAsync(textBox1.Text, hash, textBox2.Text);
}
private async void button4_Click(object sender, EventArgs e)
{
//get available contacts
var result = await client.GetContactsAsync();
//find recipient in contacts
var user = result.users.lists
.Where(x => x.GetType() == typeof(TLUser))
.Cast<TLUser>()
.Where(x => x.first_name == "ZRX");
if (user.ToList().Count != 0)
{
foreach (var u in user)
{
if (u.phone.Contains("3965604"))
{
//send message
await client.SendMessageAsync(new TLInputPeerUser() { user_id = u.id }, textBox3.Text);
}
}
}
}
}}
答案 1 :(得分:0)
您可以在我的项目中找到实际示例:https://github.com/UnoSD/TgMsgSharp
我使用TLSharp来备份Telegram消息。您应该创建TelegramClient的实例,连接,请求auth代码,使用代码创建auth,然后您可以调用TelegramClient上的所有方法。
请注意,并非支持Telegram(您链接)中的所有方法,只有少数可用。