Telegram 电报;API开发工具“;限制

Telegram 电报;API开发工具“;限制,telegram,Telegram,我尝试使用我的应用程序(使用TLSharp),但突然使用TelegramClient.SendCodeRequestAsync函数,我得到了以下异常: “防洪。电报现在要求你的程序执行请求 仅在84894秒过后(TimeToWait属性)再次。如果 你认为这个问题的罪魁祸首可能在于沙普 实施,打开Github问题“ 等待84894秒后,它再次显示此消息。 (我等待并尝试了几次,但消息没有区别:() 有人告诉我它的电报限制,对吗? 您是否有更好的主意将消息/文件发送到电报帐户?我猜您正在多次关闭和

我尝试使用我的应用程序(使用TLSharp),但突然使用
TelegramClient.SendCodeRequestAsync
函数,我得到了以下异常:

“防洪。电报现在要求你的程序执行请求 仅在84894秒过后(TimeToWait属性)再次。如果 你认为这个问题的罪魁祸首可能在于沙普 实施,打开Github问题“

等待84894秒后,它再次显示此消息。 (我等待并尝试了几次,但消息没有区别:()

有人告诉我它的电报限制,对吗?
您是否有更好的主意将消息/文件发送到电报帐户?

我猜您正在多次关闭和启动应用程序,或者重复此方法。10次之后,电报API会让您等待大约24小时以防止洪水泛滥


这是一个电报限制,我的建议是:在调用
SendCodeRequestAsync()之间等待2-3分钟

这可能是一个迟到的答案,但可以用作参考。第一个问题是电报API不允许每个电话号码每天发送超过5次代码请求。第二个问题是默认情况下用于
电报客户端的共享会话文件。因此,您应该创建一个自定义会话管理器来分隔每个p在一个单独的
dat
文件中输入电话号码会话

public class CustomSessionStore : ISessionStore
{
    public void Save(Session session)
    {
        var dir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Sessions");

        if (!Directory.Exists(dir))
        {
            Directory.CreateDirectory(dir);
        }

        var file = Path.Combine(dir, "{0}.dat");

        using (FileStream fileStream = new FileStream(string.Format(file, (object)session.SessionUserId), FileMode.OpenOrCreate))
        {
            byte[] bytes = session.ToBytes();
            fileStream.Write(bytes, 0, bytes.Length);
        }
    }

    public Session Load(string sessionUserId)
    {
        var dir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Sessions");

        if (!Directory.Exists(dir))
        {
            Directory.CreateDirectory(dir);
        }

        var file = Path.Combine(dir, "{0}.dat");

        string path = string.Format(file, (object)sessionUserId);
        if (!File.Exists(path))
            return (Session)null;

        var buffer = File.ReadAllBytes(path);
        return Session.FromBytes(buffer, this, sessionUserId);
    }
}
然后创建您的
客户端
,如下所示:

var client = new TelegramClient(apiId, apiHash, new CustomSessionStore(), phoneNumber);