0

这是我关于堆栈溢出的第一篇文章,但我已经使用它很长时间了。首先,我要感谢伟大的开发者社区,他们帮助我作为本科生解决了许多问题。

现在,我一直在从事一个 asp.net 项目,在该项目中,我想获得有关特定查询(例如星际迷航)的 twitter 流,并始终显示最近 10 条左右关于它的推文的滚动列表。我也在使用情绪评分器,我想显示每条推文的评分结果,可能在推文本身旁边。

到目前为止,我已经能够创建一个简单的控制台应用程序,在该应用程序中,我使用适当的 OAuth 标头连接到流式 API,并将 json 解析为可读的格式。但是,我现在想创建一个像上面提到的那样的 asp.net 应用程序。许多示例展示了如何发布简单的帖子,或者从用户那里获取最后 20 个状态,并通过返回视图来更新页面,但这些示例都没有展示如何处理 twitter 的连续/无限流。

我的问题是如何从控制器中继 asp.net 中的 twitter 流?每次新状态进入流时是否可以返回视图?还是我走错了方向?我还阅读了有关 PushStreamContent 的信息 - 是否可以使用此方法中继 twitter 流,然后可能进行 ajax 调用?我觉得这不是最简单的解决方案。我也怀疑我需要使用线程。

我对 asp.net mvc 很陌生,也许 mvc 不是解决我的问题的最佳方法。但是,如果可以的话,我想使用它。任何提示、方法或帮助引导我朝着正确的方向前进将不胜感激。我希望这个问题足够清楚和具体。

这是我的 TwitterStream 类的一些示例代码:

public void StartStream()
{
    try
    {
        HttpWebRequest request = MakeRequest(); //makes oauth request
        HttpWebResponse resp = (HttpWebResponse)request.GetResponse();
        sReader = new StreamReader( resp.GetResponseStream() );
        while(true)
        {
            PopulateTweetJsonQueue(); //throw tweets into queue for processing
        }
    }
    catch(WebException e)
    {
        BackOffStrategy(e);
    }
}
4

1 回答 1

1

使用此方法,您可以发布推文并重定向

public ActionResult Tweet(string tweet)
        {
            var twitter = new WebConsumer(TwitterConsumer.ServiceDescription, this.TokenManager);
            // Process the response
            var accessTokenResponse = twitter.ProcessUserAuthorization();

            // Is Twitter calling back with authorization?
            if (Tweet_Token != null)
            {
                string accessToken = Tweet_Token;
                var tokenSecret = twitter.TokenManager.GetTokenSecret(accessToken);
                TwitterPush tw = new TwitterPush(twitter_app, twitter_secret, accessToken, tokenSecret);
                if (tweet != "")
                {
                    var response = tw.UpdateStatus(tweet);

                }
                return View();

            }  return View();
        }
于 2013-05-29T06:16:28.230 回答