0

我有一个用户列表,我需要在 Twitter 上发布消息(在我们的帐户上发布消息,然后使用 @ID 引用这些用户),使用 tweetinvi。目前,这是我的代码。我正在尝试每 36 秒发布一条消息,以获得每天可能的最大推文数量(2400 条)。

    static void Main(string[] args)
    {
        
        allUsers = analytics.getAllUniqueUserID();
       

       
        System.Timers.Timer aTimer = new System.Timers.Timer();
        aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
        
        aTimer.Interval = 36000;
        aTimer.Enabled = true;

        while (true)
        {
            //just to keep console open
        }
    }

定时事件如下

private static void OnTimedEvent(object source, ElapsedEventArgs e)
    {

        lastMessaged = analytics.getLastUserIDMessaged() + 1;
        string identifier = allUsers[lastMessaged];
        string message = "Hello";
        
        TwitterAccess.publicTweetToUsers(identifier, message); 
        analytics.writeLastIDToFile(lastMessaged.ToString());
        
        
        
    }

与 publicTweetToUsers 如下

public static void publicTweetToUsers(string identifier, string message)
    {
        Auth.SetUserCredentials(key, secret, token, tokenSecret);
        var user = User.GetAuthenticatedUser();

        var tweet = Tweet.PublishTweet(string.Format("{0} {1}",     identifier, message));

    }

请注意,key、secret、token 和 tokenSecret 被分配了值,并且该帐户确实登录并发送了推文,但它并没有始终如一地这样做,它会发送一段时间然后停止。我究竟做错了什么 ?

4

1 回答 1

4

我是 Tweetinvi 的开发者。

正如您提到的,Twitter 每天授权的推文的理论限制是每天 2400 条,以 30 分钟为单位(每 30 分钟 50 条)。

尽管为了防止 Twitter 上的垃圾邮件,他们的服务器会应用未记录的测试来确保推文是“合法”推文。

因此,在我们认为问题来自图书馆之前,让我们分析一下 Twitter 返回的内容,并尝试稍微减少您每天发布的推文数量。

  1. 将计时器增加到 0.5 秒(1440 条推文/天)。
  2. 检查 Twitter 返回的错误(https://github.com/linvi/tweetinvi/wiki/Exception-Handling#per-request-exception-handling

在错误中,您会发现 2 个有用的属性:TwitterExceptionInfosTwitterDescription。如果这两个属性不能真正帮助您识别问题,请分享所有可用的信息TwitterException,我将仔细研究它们。

周末愉快!

于 2017-01-15T14:03:12.947 回答