Отправка сообщения в телеграм-канал через телеграм-ботаC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Отправка сообщения в телеграм-канал через телеграм-бота

Сообщение Anonymous »

Я создаю небольшой проект для собственного использования и хочу, чтобы он автоматически получал уведомления в виде сообщений в канале Telegram.
Я выполнил все предварительные шаги в телеграмм: Создал бота и чат, добавил бота в чат от имени администратора. Я получил токен и идентификатор чата.
Далее я попробовал реализовать несколько версий кода, но ни одна из них у меня не работает.
  • Первый вариант
Здесь возникает ошибка:

DllNotFoundException: невозможно загрузить DLL «winhttp.dll» или одну из ее зависимостей: 0x80070005 (E_ACCESSDENIED)

Код: Выделить всё

public string TelegramSendMessage(string msg)
{
string urlString = $"https://api.telegram.org/bot{TOKEN}/sendMessage?chat_id={CHATID}&text={msg}";
WebClient webclient = new WebClient();
return webclient.DownloadString(urlString);
}
  • Второй вариант
Здесь я получаю ошибку:

Инициализатор типа System.Net.CookieContainer выдал исключение

Код: Выделить всё

private static readonly HttpClient client = new HttpClient();

private async void SendMessageToChannel(string messageText)
{
try
{
var url = $"https://api.telegram.org/bot{TOKEN}/sendMessage";
var payload = new
{
chat_id = CHATID,
text = messageText
};

var content = new StringContent(JsonSerializer.Serialize(payload), Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);

if (response.IsSuccessStatusCode)
{
Print($"Messange send to a chat {CHATID}: {messageText}");
}
else
{
var responseBody = await response.Content.ReadAsStringAsync();
Print($"Error: {response.StatusCode} - {responseBody}");
}
}
catch (Exception ex)
{
Print($"Error: {ex.Message}");
}
}
  • Третий вариант
Я ничего не получаю здесь ошибка, в логах написано "Успех", но в телеграм-канале сообщений нет.

Код: Выделить всё

public void PostRequest(string msg)
{
try
{
var url = $"https://api.telegram.org/bot{TOKEN}/sendMessage?chat_id={CHATID}&text={msg}";
var response = Http.Get(url);

Print(url);

if (response.IsSuccessful)
{
msg += ": Success";
Print("Success");
}
else
{
msg += ": Error";
Print("Error");
}
}

catch (Exception e)
{
msg += ": EXCEPTION: " + e.Message + "\n\n" + e.StackTrace;
}

}
Мне не удалось найти решение этих ошибок самостоятельно. И если честно, у меня возникло ощущение, что я в принципе делаю что-то не так, потому что несколько разных способов у меня не работают.
Не могли бы вы помочь мне закончить хотя бы 1 из варианты кода, которые, на ваш взгляд, будет легче исправить.

Подробнее здесь: https://stackoverflow.com/questions/786 ... legram-bot
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»