Пытаюсь по таймеру из класса Синглтона отправить проактивное сообщение по ранее созранённым в БД ConversationReference
public static async void Send()
{
var db = new DbQueries();
var subscribes = await db.GetSubscribes();
foreach (var subscribe in subscribes)
{
if (!string.IsNullOrWhiteSpace(subscribe.ConversationReference))
{
try
{
ConversationReference conversationReference = UrlToken.Decode<ConversationReference>(subscribe.ConversationReference);
// Recreate the message from the conversation reference that was saved previously.
var oldMessage = conversationReference.GetPostToBotMessage();
if (!oldMessage.ChannelId.Contains("emulator"))
{
var userAccount = new ChannelAccount(oldMessage.From.Id, oldMessage.From.Name);
var botAccount = new ChannelAccount(oldMessage.Recipient.Id, oldMessage.Recipient.Name);
var connector = new ConnectorClient(new Uri(oldMessage.ServiceUrl));
var conversationId = oldMessage.Conversation.Id;
var message = Activity.CreateMessageActivity();
if (!string.IsNullOrEmpty(conversationId) && !string.IsNullOrEmpty(oldMessage.ChannelId))
{
message.ChannelId = oldMessage.ChannelId;
}
else
{
conversationId = (await connector.Conversations.CreateDirectConversationAsync(botAccount, userAccount)).Id;
}
message.From = botAccount;
message.Recipient = userAccount;
message.Conversation = new ConversationAccount(id: conversationId);
message.Text = "Hello, this is a notification";
message.Locale = "en-Us";
//await connector.Conversations.SendToConversationAsync((Activity)message);
await connector.Conversations.ReplyToActivityAsync((Activity)message);
}
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
}
}
При отправке проактивного сообщения получаю ответ: Код состояния ответа не указывает на успешное выполнение: 401 (Unauthorized). {"error":"invalid_client","error_description":"AADSTS70002: 'client_assertion', 'client_secret' or 'request' is required for the 'client_credentials' grant type.\r\nTrace ID: 4713-feeb-4713-4713-545d6fa10a00\r\nCorrelation ID: 4713-0c07-4713-bc96-a13ca14dd563\r\nTimestamp: 2017-11-08 11:34:24Z","error_codes":[70002],"timestamp":"2017-11-08 11:34:24Z","trace_id":"4713-4713-4713-a440-545d6fa10a00","correlation_id":"4713-0c07-4713-4713-a13ca14dd563"}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Доброго времени суток, собственно сабж в заголовкеПробовал юзать метод ToList(), но
Каждый раз,при нажатии на кнопку обновить,выводятся данные из моей таблицы товаров повторно,даже те,которые уже существуютПодскажите,как...
После попытки скомпилировать код, появилось исключение (exception - 28P01) - смскриншот
Подскажите пожалуйстаМоя проблема состоит в том, что при построении графика в ReportViewer на