1

TweetSharp ライブラリを使用してすべてのフォロワーを取得しようとしています。twitter の api では、すべてのフォロワーを取得するために、ページネーションを行うためにカーソル変数を使用する機会があると書かれています。

https://dev.twitter.com/docs/api/1.1/get/followers/list

https://dev.twitter.com/docs/misc/cursoring

しかし、この操作を TweetSharp で行う機会はありますか? 私は次のコードを書いています:

var options = new ListFollowersOptions { ScreenName = input };
IEnumerable<TwitterUser> friends = service.ListFollowers(options);

ただし、これは最初の 20 件しか返さないため、友達を追跡することはできません。

あなたが私を助けることができれば、それは素晴らしいことです.

ありがとう。

4

1 に答える 1

1

.NET 4.0 WinForms アプリで TweetSharp v2.3.0 を使用しています。これが私にとってうまくいくものです:

// this code assumes that your TwitterService is already properly authenticated

TwitterUser tuSelf = service.GetUserProfile(
    new GetUserProfileOptions() { IncludeEntities = false, SkipStatus = false });

ListFollowersOptions options = new ListFollowersOptions();
options.UserId = tuSelf.Id;
options.ScreenName = tuSelf.ScreenName;
options.IncludeUserEntities = true;
options.SkipStatus = false;
options.Cursor = -1;
List<TwitterUser> lstFollowers = new List<TwitterUser>();

TwitterCursorList<TwitterUser> followers = service.ListFollowers(options);

// if the API call did not succeed
if (followers == null)
{
    // handle the error
    // see service.Response and/or service.Response.Error for details
}
else
{
    while (followers.NextCursor != null)
    {
        //options.Cursor = followers.NextCursor;
        //followers = m_twService.ListFollowers(options);

        // if the API call did not succeed
        if (followers == null)
        {
            // handle the error
            // see service.Response and/or service.Response.Error for details
        }
        else
        {
            foreach (TwitterUser user in followers)
            {
                // do something with the user (I'm adding them to a List)
                lstFollowers.Add(user);
            }
        }

        // if there are more followers
        if (followers.NextCursor != null &&
            followers.NextCursor != 0)
        {
            // then advance the cursor and load the next page of results
            options.Cursor = followers.NextCursor;
            followers = service.ListFollowers(options);
        }
        // otherwise, we're done!
        else
            break;
    }
}

注: これは重複した質問と見なされる場合があります。(ここここTwitterService.ListFollowersOf()を参照してください。)ただし、バージョン 2.3.0 にはメソッドがないため、これらの既存の質問は別の (古い?) バージョンの TweetSharp に関連しているようです。

于 2013-05-08T04:12:44.483 に答える