微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

电报防洪

如何解决电报防洪

出现了这样一个问题:我多次运行该程序,现在它抛出以下错误 FloodException:防洪。 Telegram 现在要求您的程序仅在 73611 秒过后(TimetoWait 属性)再次执行请求。如果您认为此问题的罪魁祸首可能在于 TLSharp 的实现,请打开 Github 问题。 我附上以下代码

using System;
using System.Text;
using System.Windows.Forms;
using TeleSharp.TL;
using TeleSharp.TL.Messages;
using TLSharp.Core;
namespace tgBM
{
    public partial class Form1: Form
    {
        string phone;
        string code;
        int n = 1;
        StringBuilder sb = new StringBuilder ();
        TelegramClient client = new TelegramClient (2646156,"08ec188e0bdee432e568120348f5f13a"); // create a client with parameters
      
        public Form1 ()
        {
            InitializeComponent();
        }

        string str = "";

        public async void authAsync()
        {
            var dialogs = (TLDialogs) await client.GetUserDialogsAsync();
            foreach (var element in dialogs.Chats)
            {
                TLChat chat = element as TLChat;
                if (element is TLChannel)
                {
                    var offset = 0;
                    TLChannel channel = element as TLChannel;
                    if (channel.Title == "TOPLES")
                    {
                        TLChannel ch = element as TLChannel;
                        TLInputPeerChannel inputPeer = new TLInputPeerChannel() {ChannelId = ch.Id,AccessHash = (long) ch.AccessHash};
                        while (n! = 11)
                        {
                            try
                            {
                                TLChannelMessages res = await client.SendRequestAsync <TLChannelMessages>
                                (new TLRequestGetHistory() {Peer = inputPeer,Limit = 20,AddOffset = offset,OffsetId = 0});
                                var msgs = res.Messages;
                                if (res.Count> offset)
                                {
                                    offset + = msgs.Count;
                                    foreach (TLAbsMessage msg in msgs)
                                    {
                                        if (msg is TLMessage)
                                        {
                                            TLMessage message = msg as TLMessage;
                                            str + = n.ToString () + "\ t" + message.Id + "\ t" + message.FromId + "\ t" + message.Message + Environment.NewLine;
                                        }
                                        if (msg is TLMessageService)
                                            continue;
                                        n ++;
                                    }
                                }
                                else
                                    break;
                            }
                            catch (Exception ex)
                            {
                                MessageBox.Show (ex.Message);
                                break;
                            }
                        }
                    }
                }
                textBox3.Text = str;
            }
        }

        private async void button1_Click (object sender,EventArgs e)
        {
            phone = textBox1.Text;
            await client.ConnectAsync (); // make a connection
            var hash = await client.SendCodeRequestAsync(phone);
        }

        private async void button2_Click (object sender,EventArgs e)
        {
            code = textBox2.Text;
            var user = await client.MakeAuthAsync(phone,await client.SendCodeRequestAsync(phone),code);
            authAsync();
        }
    }
} 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。