Я выполнил все предварительные шаги в телеграмм: Создал бота и чат, добавил бота в чат от имени администратора. Я получил токен и идентификатор чата.
Далее я попробовал реализовать несколько версий кода, но ни одна из них у меня не работает.
- Первый вариант
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