我怎样才能获得推文的详细信息?

时间:2015-08-20 15:03:34

标签: c# linq-to-twitter

当用户点击<a href="https://twitter.com/screen_name/status/id"></a>时,我需要显示推文详细信息(例如tweet),因此我尝试使用linq2twitter获取此ID:

public static IEnumerable<TweetInfo> GetLatestTweets() {
        var auth = new SingleUserAuthorizer {
            CredentialStore = new SingleUserInMemoryCredentialStore {
                ConsumerKey = Constants.TwitterAuth.ConsumerKey,
                ConsumerSecret = Constants.TwitterAuth.ConsumerSecret,
                AccessToken = Constants.TwitterAuth.AccessToken,
                AccessTokenSecret = Constants.TwitterAuth.AccessTokenSecret
            }
        };

        var twitterCtx = new TwitterContext( auth );
        var tweets =
        (  from tweet in twitterCtx.Status
            where tweet.Type == StatusType.User && tweet.ScreenName == Constants.TwitterAuth.ScreenName
            select tweet ).Take( Constants.TwitterAuth.LatestTweetsCount ).ToList();

        return tweets.Where( tweet => tweet != null && tweet.User != null )
            .Select( tweet => new TweetInfo {
                Text = tweet.Text,
                TweetId = tweet.StatusID, // id for https://twitter.com/screen_name/status/id
                ScreenName = tweet.ScreenName
            }).ToList();
    }

但我在tweet中找不到与此id对应的属性。您对我如何获得此ID有任何建议吗?

1 个答案:

答案 0 :(得分:1)

那应该是StatusID。设置断点并在RunUserTimelineQueryAsync中运行代码:

https://github.com/JoeMayo/LinqToTwitter/blob/master/New/Demos/Linq2TwitterDemos_Console/StatusDemos.cs

请务必将ScreenName替换为您的屏幕名称,并使用第一条推文中的StatusID在浏览器中提取该URL。我看到您显示的网址有&#34; screen_name&#34;,您应该仔细检查您是否正在使用真实屏幕名称替换,例如&#34; guidmiitestacc&#34 ;.您也可以下载并运行Console演示代码。

因此,如果StatusID属性为&#34; 634349628574597120&#34;并且您的用户名是&#34; guidmiitestacc&#34;,在浏览器地址栏中输入以下值:

https://twitter.com/guidmiitestacc/status/634349628574597120

您可能希望在填充推文的查询之后在代码中设置断点,以查看StatusID是否包含ID。然后跟踪代码以查看是否在任何地方更改或删除。

提示:还有一个ID属性,但只有输入和LINQ到Twitter有输出的备用字段,或者类似于&#34; StatusID&#34;或者有一个&#34;响应&#34;后缀。