/// <summary>
        /// Returns detailed information about the relationship between two arbitrary users.
        /// </summary>
        /// <param name="sourceScreenName">The user_id of the subject user.</param>
        /// <param name="sourceId">The screen_name of the subject user.</param>
        /// <param name="targetId">The user_id of the target user.</param>
        /// <param name="targetScreenName">The screen_name of the target user.</param>
        /// <returns></returns>
        /// <remarks> ref: https://api.twitter.com/1.1/friendships/show.json </remarks>
        public async static Task <UserStatus> GetFriendship(this IUserSession session, string sourceScreenName = "", string targetScreenName = "", int sourceId = 0, int targetId = 0)
        {
            var parameters = new TwitterParametersCollection();

            if (!string.IsNullOrWhiteSpace(sourceScreenName))
            {
                parameters.Add("source_screen_name", sourceScreenName);
            }

            if (sourceId != 0)
            {
                parameters.Add("source_id", sourceId.ToString());
            }

            if (!string.IsNullOrWhiteSpace(targetScreenName))
            {
                parameters.Add("target_screen_name", targetScreenName);
            }

            if (targetId != 0)
            {
                parameters.Add("target_id", targetId.ToString());
            }

            if (parameters.EnsureAllArePresent(new [] { "source_screen_name", "source_id", "target_screen_name", "target_id" }).IsFalse())
            {
                return(session.MapParameterError <UserStatus>(
                           "source_screen_name, source_id, target_screen_name and target_id are all required"));
            }


            return(await session.PostAsync(TwitterApi.Resolve("/1.1/friendships/show.json"), parameters)
                   .ContinueWith(c => c.MapToSingle <UserStatus>()));
        }
        /// <summary>
        /// Sends a direct message sent to a user.
        /// </summary>
        /// <param name="text">Text to send to user</param>
        /// <param name="screenName">Screen name of the recipient</param>
        /// <returns></returns>
        /// <remarks>ref: https://dev.twitter.com/docs/api/1.1/post/direct_messages/new </remarks>
        public async static Task<DirectMessage> SendDirectMessage(this IUserSession session, string screenName, string text)
        {
            var parameters = new TwitterParametersCollection();
            parameters.Create(include_entities:true, screen_name:screenName, text:text.TrimAndTruncate(140));
            if (parameters.EnsureAllArePresent(new [] {"screen_name", "text"}).IsFalse())
            {
                return session.MapParameterError<DirectMessage>(
                        "Either screen_name and text required");
            }

            return await session.PostAsync(TwitterApi.Resolve("/1.1/direct_messages/new.json"), parameters)
                          .ContinueWith(c => c.MapToSingle<DirectMessage>());
        }
예제 #3
0
        /// <summary>
        /// Sends a direct message sent to a user.
        /// </summary>
        /// <param name="text">Text to send to user</param>
        /// <param name="screenName">Screen name of the recipient</param>
        /// <returns></returns>
        /// <remarks>ref: https://dev.twitter.com/docs/api/1.1/post/direct_messages/new </remarks>
        public async static Task <DirectMessage> SendDirectMessage(this IUserSession session, string screenName, string text)
        {
            var parameters = new TwitterParametersCollection();

            parameters.Create(include_entities: true, screen_name: screenName, text: text.TrimAndTruncate(140));
            if (parameters.EnsureAllArePresent(new [] { "screen_name", "text" }).IsFalse())
            {
                return(session.MapParameterError <DirectMessage>(
                           "Either screen_name and text required"));
            }

            return(await session.PostAsync(TwitterApi.Resolve("/1.1/direct_messages/new.json"), parameters)
                   .ContinueWith(c => c.MapToSingle <DirectMessage>()));
        }
        /// <summary>
        /// Returns detailed information about the relationship between two arbitrary users.
        /// </summary>
        /// <param name="sourceScreenName">The user_id of the subject user.</param>
        /// <param name="sourceId">The screen_name of the subject user.</param>
        /// <param name="targetId">The user_id of the target user.</param>
        /// <param name="targetScreenName">The screen_name of the target user.</param>
        /// <returns></returns>
        /// <remarks> ref: https://api.twitter.com/1.1/friendships/show.json </remarks>
        public async static Task<UserStatus> GetFriendship(this IUserSession session, string sourceScreenName="",string targetScreenName="", int sourceId=0,int targetId=0)
        {
            var parameters = new TwitterParametersCollection();

            if (!string.IsNullOrWhiteSpace(sourceScreenName))
            {
                parameters.Add("source_screen_name", sourceScreenName);
            }

            if (sourceId != 0)
            {
                parameters.Add("source_id", sourceId.ToString());
            }

            if (!string.IsNullOrWhiteSpace(targetScreenName))
            {
                parameters.Add("target_screen_name", targetScreenName);
            }

            if (targetId != 0)
            {
                parameters.Add("target_id", targetId.ToString());
            }

            if (parameters.EnsureAllArePresent(new [] { "source_screen_name", "source_id", "target_screen_name", "target_id" }).IsFalse())
            {
                return session.MapParameterError<UserStatus>(
                        "source_screen_name, source_id, target_screen_name and target_id are all required");
            }


            return await session.PostAsync(TwitterApi.Resolve("/1.1/friendships/show.json"), parameters)
                          .ContinueWith(c => c.MapToSingle<UserStatus>());
        }