C# client library for building Telegram bot (https://core.telegram.org/bots/api)
Contains strongly-types request and response classes, and transport class for sending requests and receiving results.
var bot = new TelegramBot(accessToken);
var me = await bot.MakeRequestAsync(new GetMe());
if (me != null)
{
Console.WriteLine("Me: {0} (@{1})", me.FirstName, me.Username);
}
See TelegramBotDemo
project for more samples.
- Target framworks changed:
net8.0
only
- Add ParseMode.MarkdownV2
- Add SendChatAction.ChatActionEnum
- Add MessageThreadId
- User and Chat updated to actual Bot API
- Target framworks changed:
net6.0
only
- Target framworks changed:
net5.0
only System.Text.Json
replacesNewtosoft.Json
Telegram API updated up to v2.3 (November 21, 2016). Message editing, games - everything should work except inline mode (see below).
Breaking changes (compared to 3.8.1):
MakeRequestAsync
now throwsBotRequestException
if non-Ok response is received from server.- Typo fixed on
Contact
type:PhoneNumber
wasPhoneNumbet
ReplyKeyboardHide
renamed toReplyKeyboardRemove
(when it had been renamed in API???)- Breaking changes in API 2.3:
- Parameter
EditMessage
replaced withDisableEditMessage
inSetGameScore
- In
ReplyKeyboardRemove
:HideKeyboard
renamed toRemoveKeyboard
- Parameter
Inline mode
Inline mode needs a lot of new classes to be created. Please make PR if you wish to help.
- Upgraded to .NET Core 1.0.0 and
netstandard1.3
- Changes in Telegram API defined as August 29, 2015 implemented (issue #19):
- Added support for uploading certificates in
SetWebhook
- Changes in Telegram API defined as September 7, 2015 implemented (issue #20):
- Added
ParseMode
field toSendMessage
request for simple markdown markup (see FAQ for details) - Changes in Telegram API defined as September 18, 2015 implemented (issue #21):
- Bots can now download files and media sent by users, use
GetFile
request andFile
object (run demo project and send him a picture!) - Proxy support added:
- Use
WebProxy
property when creating bot (see issue #22 for sample)
Project converted to Visual Studio 2015 and new project type (xproj
).
NuGet package now targets multiple runtimes: net45
, dnx45
, dnx50
and dnxcore50
.
New demo console app added (TelegramBotDemo-vNext
) for testing under dnx451
runtime. Old demo app ('classic' console project) also available, but Attention! Now it grabs package from nuget! (because old-style .csproj can't reference new .xproj assemblies directly).
Changes in Telegram API defined as August 15, 2015 implemented (issue #13).
All real changes were already implemented in 3.5.50816
, only some documenation/comments are updated in this version.
- Changes in Telegram API defined as July 2015 implemented (issue #7):
- The
Caption
field has been removed from theVideo
object and added to theMessage
object instead. Caption
andDuration
optional fields have been added to theSendVideo
request.UserId
type in theContact
object changed to Long (was String - typo in API docs)- Changes, not [yet?] announced in Telegram API changlog:
Performer
andTitle
optional fields have been added toAudio
objectDuration
,Performer
andTitle
optional fields have been added to theSendAudio
request- Object
Voice
added (toMessage
class) SendVoice
request added
Improvements for working via webhooks:
SetWebhook
request added (Issue #3)DeserializeUpdate
method added to convert webhook POST json value toUpdate
object
Fixed issue #6 with sending files with non-latin characters in name.
Message
properties Date
and ForwardDate
are now DateTimeOffset (converted to local time).
Methods for sending files (SendPhoto
, SendVideo
, etc) implemented.
Switched to HttpClient (instead of HttpRequest):
- no more
System.Web
dependency; MakeRequest
method is now async only, use.Result
or.Wait()
for synchronous calls
Refactored to new request model - base RequestBase
class and one (and one async) MakeRequest
method.
Major version increased to "2", patch version set to current date.
Response class hierarchy (Types
), first requests. It works!