async Task <bool> SendMessage(string recepient, string threadId, string text) { if (!delay.IsRunning) { delay.Start(); } else { while (delay.ElapsedMilliseconds < 1 * 1000) { Task.Delay(100).Wait(); } } //var x = await api.SendDirectMessage(recepient, threadId, text); string url = "https://youtu.be/pBhnsFAhGx4?list=FLSsho9tQdNbmc7509kcCgcw"; InstaMessageLink msg = new InstaMessageLink(); msg.Text = text + " " + url; msg.Url = url; var x = await api.SendLinkMessage(msg, long.Parse(recepient)); if (x.Succeeded) { msgCount++; delay.Restart(); return(true); } return(false); }
public async Task <IResult <InstaDirectInboxThreadList> > SendLinkMessage(InstaMessageLink message, params long[] recipients) { var threads = new InstaDirectInboxThreadList(); try { var directSendMessageUri = UriCreator.GetDirectSendLinkMessageUri(); var request = HttpHelper.GetDefaultRequest(HttpMethod.Post, directSendMessageUri, _deviceInfo); var fields = new Dictionary <string, string> { { "link_text", message.Text }, { "link_urls", $"[\"{message.Url}\"]" }, { "action", "send_item" } }; if (recipients == null || recipients.Length < 1) { return(Result.Fail <InstaDirectInboxThreadList>("Please provide at least one recipient.")); } fields.Add("recipient_users", "[[" + string.Join(",", recipients) + "]]"); request.Content = new FormUrlEncodedContent(fields); var response = await _httpRequestProcessor.SendAsync(request); var json = await response.Content.ReadAsStringAsync(); if (response.StatusCode != HttpStatusCode.OK) { return(Result.UnExpectedResponse <InstaDirectInboxThreadList>(response, json)); } var result = JsonConvert.DeserializeObject <InstaSendDirectMessageResponse>(json); if (!result.IsOk()) { return(Result.Fail <InstaDirectInboxThreadList>(result.Status)); } threads.AddRange(result.Threads.Select(thread => ConvertersFabric.Instance.GetDirectThreadConverter(thread).Convert())); return(Result.Success(threads)); } catch (Exception exception) { _logger?.LogException(exception); return(Result.Fail <InstaDirectInboxThreadList>(exception)); } }