Пример #1
0
        /// <summary>
        /// Returns fully-hydrated tweets for up to 100 tweets per request, as specified by comma-separated values passed to the user_id and/or screen_name parameters.
        /// </summary>
        /// <param name="tweetIds">up to 100 are allowed in a single request.</param>
        /// <returns>Observable List of full tweets</returns>
        /// <remarks> ref: https://dev.twitter.com/docs/api/1.1/get/statuses/lookup </remarks>
        public static async Task <TwitterResponseCollection <Tweet> > GetTweetsFull(this IUserSession session, IEnumerable <long> tweetIds = null)
        {
            var parameters = new TwitterParametersCollection();

            parameters.Create(include_entities: true);
            parameters.CreateCollection(tweetids: tweetIds);

            return(await session.PostAsync(TwitterApi.Resolve("/1.1/statuses/lookup.json"), parameters)
                   .ContinueWith(c => c.MapToMany <Tweet>()));
        }
        /// <summary>
        /// Returns the relationships of the authenticating user to the comma-separated list of up to 100 screen_names or user_ids provided. Values for connections can be: following, following_requested, followed_by, none.
        /// </summary>
        /// <param name="screenNames">list of screen_names to check</param>
        /// <param name="userIds">list of user_ids to check against</param>
        /// <returns></returns>
        /// <remarks> ref : https://dev.twitter.com/docs/api/1.1/get/friendships/lookup </remarks>
        public async static Task<TwitterResponseCollection<FriendshipLookupResponse>> GetFriendships(this IUserSession session, IEnumerable<string> screenNames = null, IEnumerable<long> userIds = null)
        {
            var parameters = new TwitterParametersCollection();
            parameters.CreateCollection(screen_names: screenNames, user_ids:userIds);

            if (parameters.EnsureEitherOr("screen_name", "user_id").IsFalse())
            {
                return session.MapParameterError<TwitterResponseCollection<FriendshipLookupResponse>>(
                        "Either screen_names or user_ids required");
            }

            var url = TwitterApi.Resolve("/1.1/friendships/lookup.json");
            return await session.GetAsync(url, parameters)
                          .ContinueWith(f => f.MapToMany<FriendshipLookupResponse>());
        }
Пример #3
0
        /// <summary>
        /// Returns fully-hydrated user objects for up to 100 users per request, as specified by comma-separated values passed to the user_id and/or screen_name parameters.
        /// </summary>
        /// <param name="screenNames">up to 100 are allowed in a single request.</param>
        /// <param name="userIds">up to 100 are allowed in a single request. </param>
        /// <returns>Observable List of full user details</returns>
        /// <remarks> ref: https://dev.twitter.com/docs/api/1.1/get/users/lookup </remarks>
        public static async Task <TwitterResponseCollection <User> > GetUsersDetailsFull(this ITwitterSession session, IEnumerable <string> screenNames = null,
                                                                                         IEnumerable <long> userIds = null)
        {
            var parameters = new TwitterParametersCollection();

            parameters.Create(include_entities: true);
            parameters.CreateCollection(screen_names: screenNames, user_ids: userIds);

            if (parameters.EnsureEitherOr("screen_name", "user_id").IsFalse())
            {
                return(session.MapParameterError <TwitterResponseCollection <User> >(
                           "Either screen_names or user_ids required"));
            }

            return(await session.GetAsync(TwitterApi.Resolve("/1.1/users/lookup.json"), parameters).ContinueWith(c => c.MapToMany <User>()));
        }
        /// <summary>
        /// Returns the relationships of the authenticating user to the comma-separated list of up to 100 screen_names or user_ids provided. Values for connections can be: following, following_requested, followed_by, none.
        /// </summary>
        /// <param name="screenNames">list of screen_names to check</param>
        /// <param name="userIds">list of user_ids to check against</param>
        /// <returns></returns>
        /// <remarks> ref : https://dev.twitter.com/docs/api/1.1/get/friendships/lookup </remarks>
        public async static Task <TwitterResponseCollection <FriendshipLookupResponse> > GetFriendships(this IUserSession session, IEnumerable <string> screenNames = null, IEnumerable <long> userIds = null)
        {
            var parameters = new TwitterParametersCollection();

            parameters.CreateCollection(screen_names: screenNames, user_ids: userIds);

            if (parameters.EnsureEitherOr("screen_name", "user_id").IsFalse())
            {
                return(session.MapParameterError <TwitterResponseCollection <FriendshipLookupResponse> >(
                           "Either screen_names or user_ids required"));
            }

            var url = TwitterApi.Resolve("/1.1/friendships/lookup.json");

            return(await session.GetAsync(url, parameters)
                   .ContinueWith(f => f.MapToMany <FriendshipLookupResponse>()));
        }
Пример #5
0
        /// <summary>
        /// Removes multiple members from a list, by specifying a comma-separated list of member ids or screen names. The authenticated user must own the list to be able to remove members from it.
        /// </summary>
        /// <param name="listId">The numerical id of the list.</param>
        /// <param name="slug">You can identify a list by its slug instead of its numerical id. If you decide to do so, note that you'll also have to specify the list owner using the owner_id or owner_screen_name parameters.</param>
        /// <param name="screenNames">list of screen names, up to 100 are allowed in a single request.</param>
        /// <param name="userIds">list of user IDs, up to 100 are allowed in a single request.</param>
        /// <param name="ownerScreenName">The screen name of the user who owns the list being requested by a slug.</param>
        /// <param name="ownerId">The user ID of the user who owns the list being requested by a slug.</param>
        /// <returns></returns>
        /// <remarks> ref: https://dev.twitter.com/docs/api/1.1/post/lists/members/destroy_all </remarks>
        public static async Task <TwitterSuccess> DeleteUsersFromList(this IUserSession session, long listId = 0, string slug                   = "",
                                                                      IEnumerable <string> screenNames       = null, IEnumerable <long> userIds = null,
                                                                      string ownerScreenName = "", long ownerId = 0)
        {
            var parameters = new TwitterParametersCollection();

            parameters.Create(list_id: listId, slug: slug, owner_id: ownerId, owner_screen_name: ownerScreenName);
            parameters.CreateCollection(screen_names: screenNames, user_ids: userIds);

            if (parameters.EnsureEitherOr("screen_name", "user_id").IsFalse())
            {
                return(session.MapParameterError <TwitterSuccess>(
                           "Either screen_names or user_ids required"));
            }

            return(await session.PostAsync(TwitterApi.Resolve("/1.1/lists/members/destroy_all.json"), parameters)
                   .ContinueWith(c => c.MapToTwitterSuccess()));
        }
        /// <summary>
        /// Removes multiple members from a list, by specifying a comma-separated list of member ids or screen names. The authenticated user must own the list to be able to remove members from it.
        /// </summary>
        /// <param name="listId">The numerical id of the list.</param>
        /// <param name="slug">You can identify a list by its slug instead of its numerical id. If you decide to do so, note that you'll also have to specify the list owner using the owner_id or owner_screen_name parameters.</param>
        /// <param name="screenNames">list of screen names, up to 100 are allowed in a single request.</param>
        /// <param name="userIds">list of user IDs, up to 100 are allowed in a single request.</param>
        /// <param name="ownerScreenName">The screen name of the user who owns the list being requested by a slug.</param>
        /// <param name="ownerId">The user ID of the user who owns the list being requested by a slug.</param>
        /// <returns></returns>
        /// <remarks> ref: https://dev.twitter.com/docs/api/1.1/post/lists/members/destroy_all </remarks>
        public static async Task<TwitterSuccess> DeleteUsersFromList(this IUserSession session, long listId=0, string slug="",
            IEnumerable<string> screenNames=null, IEnumerable<long> userIds=null,
            string ownerScreenName = "", long ownerId = 0)
        {
            var parameters = new TwitterParametersCollection();
            parameters.Create(list_id: listId, slug: slug, owner_id: ownerId, owner_screen_name: ownerScreenName);
            parameters.CreateCollection(screen_names:screenNames, user_ids:userIds);

            if (parameters.EnsureEitherOr("screen_name", "user_id").IsFalse())
            {
                return session.MapParameterError<TwitterSuccess>(
                        "Either screen_names or user_ids required");
            }

            return await session.PostAsync(TwitterApi.Resolve("/1.1/lists/members/destroy_all.json"), parameters)
                          .ContinueWith(c => c.MapToTwitterSuccess());
        }
Пример #7
0
        /// <summary>
        /// Returns fully-hydrated user objects for up to 100 users per request, as specified by comma-separated values passed to the user_id and/or screen_name parameters.
        /// </summary>
        /// <param name="screenNames">up to 100 are allowed in a single request.</param>
        /// <param name="userIds">up to 100 are allowed in a single request. </param>
        /// <returns>Observable List of full user details</returns>
        /// <remarks> ref: https://dev.twitter.com/docs/api/1.1/get/users/lookup </remarks>
        public static async Task<TwitterResponseCollection<User>> GetUsersDetailsFull(this ITwitterSession session, IEnumerable<string> screenNames = null,
            IEnumerable<long> userIds = null)
        {
            var parameters = new TwitterParametersCollection();
            parameters.Create(include_entities: true);
            parameters.CreateCollection(screen_names: screenNames, user_ids: userIds);

            if (parameters.EnsureEitherOr("screen_name", "user_id").IsFalse())
            {
                return session.MapParameterError<TwitterResponseCollection<User>>(
                        "Either screen_names or user_ids required");
            }

            return await session.GetAsync(TwitterApi.Resolve("/1.1/users/lookup.json"), parameters).ContinueWith(c => c.MapToMany<User>());
        }
        /// <summary>
        /// Returns fully-hydrated tweets for up to 100 tweets per request, as specified by comma-separated values passed to the user_id and/or screen_name parameters.
        /// </summary>
        /// <param name="tweetIds">up to 100 are allowed in a single request.</param>
        /// <returns>Observable List of full tweets</returns>
        /// <remarks> ref: https://dev.twitter.com/docs/api/1.1/get/statuses/lookup </remarks>
        public static async Task<TwitterResponseCollection<Tweet>> GetTweetsFull(this IUserSession session, IEnumerable<long> tweetIds = null)
        {
            var parameters = new TwitterParametersCollection();
            parameters.Create(include_entities: true);
            parameters.CreateCollection(tweetids: tweetIds);

            return await session.PostAsync(TwitterApi.Resolve("/1.1/statuses/lookup.json"), parameters)
                .ContinueWith(c => c.MapToMany<Tweet>());
        }