/// <summary> /// deletes a direct message /// </summary> /// <param name="ctx">Twitter Context</param> /// <param name="id">id of direct message</param> /// <param name="callback">Async Callback</param> /// <returns>direct message element</returns> public static DirectMessage DestroyDirectMessage(this TwitterContext ctx, string id, bool includeEntites, Action <TwitterAsyncResponse <DirectMessage> > callback) { if (string.IsNullOrEmpty(id)) { throw new ArgumentException("id is a required parameter.", "id"); } var destroyUrl = ctx.BaseUrl + "direct_messages/destroy.json"; var reqProc = new DirectMessageRequestProcessor <DirectMessage>(); var twitExe = ctx.TwitterExecutor; twitExe.AsyncCallback = callback; var resultsJson = twitExe.PostToTwitter( destroyUrl, new Dictionary <string, string> { { "id", id }, { "include_entities", includeEntites.ToString().ToLower() } }, response => reqProc.ProcessActionResult(response, DirectMessageType.Show)); DirectMessage dm = reqProc.ProcessActionResult(resultsJson, DirectMessageType.Show); return(dm); }
/// <summary> /// sends a new direct message to specified userr /// </summary> /// <param name="ctx">Twitter Context</param> /// <param name="user">UserID or ScreenName of user to send to</param> /// <param name="text">Direct message contents</param> /// <param name="wrapLinks">Shorten links using Twitter's t.co wrapper</param> /// <param name="callback">Async Callback</param> /// <returns>Direct message element</returns> public static DirectMessage NewDirectMessage(this TwitterContext ctx, string user, string text, Action <TwitterAsyncResponse <DirectMessage> > callback) { if (string.IsNullOrEmpty(user)) { throw new ArgumentException("user is a required parameter.", "user"); } if (string.IsNullOrEmpty(text)) { throw new ArgumentException("text is a required parameter.", "text"); } var newUrl = ctx.BaseUrl + "direct_messages/new.json"; var reqProc = new DirectMessageRequestProcessor <DirectMessage>(); var twitExe = ctx.TwitterExecutor; twitExe.AsyncCallback = callback; var resultsJson = twitExe.PostToTwitter( newUrl, new Dictionary <string, string> { { "user", user }, { "text", text } }, response => reqProc.ProcessActionResult(response, DirectMessageType.Show)); DirectMessage dm = reqProc.ProcessActionResult(resultsJson, DirectMessageType.Show); return(dm); }
/// <summary> /// Sends a new direct message to specified user. /// </summary> /// <param name="userID">User ID of user to send to.</param> /// <param name="text">Direct message contents.</param> /// <returns>Direct message element.</returns> public async Task <DirectMessage> NewDirectMessageAsync(ulong userID, string text, CancellationToken cancelToken = default(CancellationToken)) { if (userID == 0) { throw new ArgumentException("userID must be set.", "userID"); } if (string.IsNullOrWhiteSpace(text)) { throw new ArgumentException("text is a required parameter.", "text"); } var newUrl = BaseUrl + "direct_messages/new.json"; var reqProc = new DirectMessageRequestProcessor <DirectMessage>(); RawResult = await TwitterExecutor.PostFormUrlEncodedToTwitterAsync <DirectMessage>( HttpMethod.Post.ToString(), newUrl, new Dictionary <string, string> { { "user_id", userID.ToString() }, { "text", text } }, cancelToken) .ConfigureAwait(false); return(reqProc.ProcessActionResult(RawResult, DirectMessageType.Show)); }
/// <summary> /// Deletes a direct message. /// </summary> /// <param name="id">id of direct message</param> /// <param name="includeEntites">Set to false to prevent entities from being included (default: true).</param> /// <returns>direct message element</returns> public async Task <DirectMessage> DestroyDirectMessageAsync(ulong id, bool includeEntites, CancellationToken cancelToken = default(CancellationToken)) { if (id == 0) { throw new ArgumentNullException("id", "id is required."); } var destroyUrl = BaseUrl + "direct_messages/destroy.json"; var reqProc = new DirectMessageRequestProcessor <DirectMessage>(); RawResult = await TwitterExecutor.PostFormUrlEncodedToTwitterAsync <DirectMessage>( HttpMethod.Post.ToString(), destroyUrl, new Dictionary <string, string> { { "id", id.ToString() }, { "include_entities", includeEntites.ToString().ToLower() } }, cancelToken) .ConfigureAwait(false); return(reqProc.ProcessActionResult(RawResult, DirectMessageType.Show)); }
/// <summary> /// Sends a new direct message to specified user. /// </summary> /// <param name="screenName">ScreenName of user to send to.</param> /// <param name="text">Direct message contents.</param> /// <returns>Direct message element.</returns> public async Task <DirectMessage> NewDirectMessageAsync(string screenName, string text, CancellationToken cancelToken = default(CancellationToken)) { if (string.IsNullOrWhiteSpace(screenName)) { throw new ArgumentException("screenName is a required parameter.", "screenName"); } if (string.IsNullOrWhiteSpace(text)) { throw new ArgumentException("text is a required parameter.", "text"); } var newUrl = BaseUrl + "direct_messages/new.json"; var reqProc = new DirectMessageRequestProcessor <DirectMessage>(); RawResult = await TwitterExecutor.PostToTwitterAsync <DirectMessage>( newUrl, new Dictionary <string, string> { { "screen_name", screenName }, { "text", text } }, cancelToken) .ConfigureAwait(false); return(reqProc.ProcessActionResult(RawResult, DirectMessageType.Show)); }