【问题标题】:How to get country place details from Twitter using Tweetsharp?如何使用 Tweetsharp 从 Twitter 获取国家/地区详细信息?
【发布时间】:2014-02-26 11:56:00
【问题描述】:

谁能帮助我使用 Tweetsharp API 从 Twitter 获取国家/地区详细信息?我已经从程序中编写了一个 sn-p 来获取用户的详细信息,但是我无法获取用户的国家详细信息。

        string tweetText = string.Empty;
        int count;
        StringBuilder sbWebsite = new StringBuilder();
        StringBuilder sbCountry = new StringBuilder();
        TwitterTest obj = new TwitterTest();

        TwitterService twitterService = obj.GetAuthentication();

        TwitterUser objUser = twitterService.GetUserProfile(new GetUserProfileOptions { IncludeEntities = true, SkipStatus = false });
        ListFollowersOptions objFollowerOptions = new ListFollowersOptions();

        objFollowerOptions.UserId = objUser.Id;
        objFollowerOptions.ScreenName = objUser.ScreenName;
        objFollowerOptions.IncludeUserEntities = true;
        objFollowerOptions.SkipStatus = false;
        objFollowerOptions.Cursor = -1;

        TwitterCursorList<TwitterUser> followers = twitterService.ListFollowers(objFollowerOptions);

        for (int i = 0; i < followers.Count; i++)
        {
            if (followers[i].Status != null)
            {
                if (followers[i].Status.Place != null)
                {
                    if (followers[i].Status.Place.Country != null)
                        sbCountry.Append(followers[i].Status.Place.Country + ",");
                }

            }
            sbWebsite.Append(followers[i].Url + ",");
        }

【问题讨论】:

    标签: c# twitter tweetsharp


    【解决方案1】:

    据我所知,您正在从指定用户那里获取关注者列表,然后您尝试获取关注者国家/地区。您需要为每个关注者调用 GetUserProfile 以获取国家信息(如果提供)

    【讨论】:

    • 嗨 vaskea,谢谢您的回复。我试图为每个关注者调用 GetUserProfile。但我仍然用空值代替国家。如果您不介意,请给我一个示例程序以获取该国家/地区的详细信息。
    【解决方案2】:

    您的代码正在从用户的状态中获取国家/地区。然而,状态(即位置)中的用户“位置”是从用户geo coordinates 获得的,并且许多用户选择不共享此信息。

    我不会尝试根据用户的状态来确定用户的位置,而是参考Users“位置”和“时区”。但是,与用户“地点”一样,“位置”和“时区”也是可选的。

    这是一个示例,其中输出了关注者的用户名、位置和时区,以及用户 URL 列表(这也是可选的!)

    static void Main(string[] args)
    {
     var follwerUrls = new StringBuilder();
     var followerNameLocationAndTimeZones = new StringBuilder();
    
     var twitterService = new TwitterService("yourConsumerKey", "yourConsumerSecret");
     twitterService.AuthenticateWith("yourToken", "yourTokenSecret");
    
     var userProfile = twitterService.GetUserProfile(new GetUserProfileOptions { IncludeEntities = true, SkipStatus = false });
    
     var followerOptions = new ListFollowersOptions 
                            { 
                                IncludeUserEntities = true, 
                                ScreenName = userProfile.ScreenName, 
                                SkipStatus = false, 
                                UserId = userProfile.Id 
                            };
    
     var usersfollowers = twitterService.ListFollowers(followerOptions);
    
     foreach (var follower in usersfollowers)
     {
        followerNameLocationAndTimeZones.Append(follower.Name);
        followerNameLocationAndTimeZones.Append(", ");
        followerNameLocationAndTimeZones.Append(string.IsNullOrEmpty(follower.Location) ? "LOCATION NOT SPECIFIED" : follower.Location);
        followerNameLocationAndTimeZones.Append(", ");
        followerNameLocationAndTimeZones.Append(string.IsNullOrEmpty(follower.TimeZone) ? "TIMEZONE NOT SPECIFIED" : follower.TimeZone);
        followerNameLocationAndTimeZones.Append('\n');
    
        follwerUrls.Append(follower.Url ?? "URL NOT SPECIFIED");
        follwerUrls.Append('\n');
     }
    
     Console.WriteLine(followerNameLocationAndTimeZones.ToString());
     Console.WriteLine(follwerUrls.ToString());
     Console.ReadKey();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-23
      • 1970-01-01
      • 2021-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-17
      相关资源
      最近更新 更多