Slack.NetStandard
3.14.0-beta2
See the version list below for details.
dotnet add package Slack.NetStandard --version 3.14.0-beta2
NuGet\Install-Package Slack.NetStandard -Version 3.14.0-beta2
<PackageReference Include="Slack.NetStandard" Version="3.14.0-beta2" />
<PackageVersion Include="Slack.NetStandard" Version="3.14.0-beta2" />
<PackageReference Include="Slack.NetStandard" />
paket add Slack.NetStandard --version 3.14.0-beta2
#r "nuget: Slack.NetStandard, 3.14.0-beta2"
#:package Slack.NetStandard@3.14.0-beta2
#addin nuget:?package=Slack.NetStandard&version=3.14.0-beta2&prerelease
#tool nuget:?package=Slack.NetStandard&version=3.14.0-beta2&prerelease
Slack.NetStandard
.NET Core NuGet package that helps with Slack interactions Available at https://www.nuget.org/packages/Slack.NetStandard
Create OAuth URL
using Slack.NetStandard.Auth;
var builder = new OAuthV2Builder("clientId")
{
State = "stateGoesHere",
BotScope = "channels:read"
};
var redirectUri = builder.BuildUri();
Get OAuth Access Token from Code
using Slack.NetStandard.Auth;
var token = await OAuthV2Builder.Exchange(code,clientId,clientSecret);
Verify Incoming Request is from Slack
using Slack.NetStandard;
var verifier = new RequestVerifier(signingSecret);
var verified = verifier.Verify(request.Headers[RequestVerifier.SignatureHeaderName], long.Parse(request.Headers[RequestVerifier.TimestampHeaderName]), request.Body);
Receive/Respond to a slash command payload
var command = new SlashCommand(payloadText);
var message = new InteractionMessage();
message.Blocks.Add(new Section{Text = new PlainText("Only title is required")});
message.Blocks.Add(new Divider());
message.Send(command.ResponseUrl);
await command.Respond(message);
// or - if it's not from a slash command, any response url can use
await command.Response(responseUrl);
Building & sending a modal
var view = new View
{
Type = "modal",
Title = "Create New Story",
Close = "Cancel",
Submit = "Submit",
Blocks = new IMessageBlock[]
{
new Section{Text = new PlainText("Only title is required")}
}
};
var client = new SlackWebApiClient(accessToken);
var response = await client.View.Open(triggerId,view);
Sending a new message to a channel
var request = new PostMessageRequest {Channel = "C123456"};
request.Blocks.Add(new Section{Text = new PlainText("Hi There!")});
var client = new SlackWebApiClient("token");
await client.Chat.Post(request);
Parse Events API Body
using Slack.NetStandard.EventsApi;
using Slack.NetStandard.EventsApi.CallbackEvents;
var eventObject = JsonConvert.DeserializeObject<Event>(input.Body);
if (eventObject is EventCallback callback)
{
switch(callback.Event)
{
case AppHomeOpened appHome:
break;
case GroupClose groupClose:
break;
}
}
Parse incoming text for entities (channels, users, links etc.)
var entities = TextParser.FindEntities("<@W123456|Steven>");
if(entities.First() is UserMention mention)
{
var userId = mention.UserId //W123456
var label = mention.Label //Steven
}
Socket Mode - getting to your payload
if(msg.Contains("envelope_id")) //If there's no envelope ID it's a Hello or Disconnect object
{
var env = JsonConvert.DeserializeObject<Envelope>(msg);
switch(env.Payload) {
case SlashCommand command:
//logic here
break;
case EventCallback evt:
//logic here
break;
case InteractionPayload payload:
//logic here
break;
}
var ack = new Acknowledge{EnvelopeId=env.EnvelopeId} //All messages must be acknowledged within a few seconds
Send(ack);
}
For a .NET 3.1 client that helps with a lot of the Socket Mode plumbing, the SocketSample app is now available at Slack.NetStandard.AsyncEnumerable
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Newtonsoft.Json (>= 12.0.3)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Slack.NetStandard:
| Package | Downloads |
|---|---|
|
Slack.NetStandard.AsyncEnumerable
Additional support for Slack.NetStandard apps running Socket Mode |
|
|
Slack.NetStandard.Endpoint
Small library used to build single Slack endpoints - allowing simpler wiring of Slack apps by examining the full request and deserializing appropriately |
|
|
Slack.NetStandard.Annotations
Library that uses method attributes to generate a Slack app |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.0 | 240 | 11/28/2025 |
| 9.10.0 | 3,443 | 10/14/2025 |
| 9.9.0 | 136,194 | 3/4/2025 |
| 9.8.0 | 497 | 3/1/2025 |
| 9.7.3 | 9,317 | 2/9/2025 |
| 9.7.2 | 2,763 | 2/5/2025 |
| 9.7.1 | 30,993 | 12/16/2024 |
| 9.7.0 | 1,476 | 12/1/2024 |
| 9.6.1 | 5,549 | 11/13/2024 |
| 9.6.0 | 10,776 | 10/18/2024 |
| 9.5.0 | 27,758 | 6/28/2024 |
| 9.4.0 | 1,498 | 6/26/2024 |
| 9.3.0 | 166,063 | 2/28/2024 |
| 9.2.0 | 225 | 2/28/2024 |
| 9.1.1 | 5,333 | 1/25/2024 |
| 9.1.0 | 219 | 1/24/2024 |
| 9.0.0 | 175 | 1/24/2024 |
| 8.2.1 | 1,381 | 1/19/2024 |
| 8.2.0 | 1,088 | 1/13/2024 |
| 8.1.1 | 41,896 | 11/14/2023 |
| 8.1.0 | 95,849 | 10/13/2023 |
| 8.0.1 | 65,038 | 9/27/2023 |
| 8.0.0 | 981 | 9/18/2023 |
| 7.0.0 | 26,293 | 7/25/2023 |
| 6.1.0-beta1 | 1,478 | 3/22/2023 |
| 6.0.0 | 61,358 | 3/22/2023 |
| 5.3.0-beta3 | 4,145 | 10/26/2022 |
| 5.3.0-beta1 | 289 | 10/26/2022 |
| 5.2.2 | 105,735 | 10/26/2022 |
| 5.2.0 | 565 | 10/26/2022 |
| 5.2.0-beta5 | 368 | 9/19/2022 |
| 5.2.0-beta4 | 368 | 8/15/2022 |
| 5.2.0-beta3 | 305 | 7/28/2022 |
| 5.2.0-beta2 | 295 | 7/14/2022 |
| 5.1.3 | 5,008 | 9/19/2022 |
| 5.1.2 | 14,818 | 7/28/2022 |
| 5.1.1 | 1,062 | 7/14/2022 |
| 5.1.0-beta1 | 299 | 7/13/2022 |
| 5.0.0 | 683 | 7/13/2022 |
| 4.1.0-beta1 | 318 | 7/1/2022 |
| 4.0.0 | 7,103 | 7/1/2022 |
| 3.14.0-beta6 | 315 | 7/1/2022 |
| 3.14.0-beta5 | 281 | 6/10/2022 |
| 3.14.0-beta4 | 311 | 6/7/2022 |
| 3.14.0-beta3 | 337 | 6/3/2022 |
| 3.14.0-beta2 | 328 | 6/1/2022 |
| 3.14.0-beta1 | 311 | 6/1/2022 |
| 3.13.5 | 11,836 | 7/1/2022 |
| 3.13.4 | 2,617 | 6/10/2022 |
| 3.13.3 | 1,106 | 6/7/2022 |
| 3.13.2 | 785 | 6/3/2022 |
| 3.13.1 | 744 | 6/1/2022 |
| 3.13.0 | 605 | 6/1/2022 |
| 3.13.0-beta2 | 320 | 5/27/2022 |
| 3.13.0-beta1 | 330 | 5/13/2022 |
| 3.12.1 | 948 | 5/27/2022 |
| 3.12.0 | 3,055 | 5/13/2022 |
| 3.12.0-beta2 | 340 | 4/13/2022 |
| 3.12.0-beta1 | 300 | 4/5/2022 |
| 3.11.0 | 5,233 | 4/5/2022 |
| 3.11.0-beta1 | 320 | 2/23/2022 |
| 3.10.0 | 8,183 | 2/23/2022 |
| 3.10.0-beta2 | 315 | 2/17/2022 |
| 3.10.0-beta1 | 334 | 2/9/2022 |
| 3.9.1 | 949 | 2/17/2022 |
| 3.9.0 | 864 | 2/9/2022 |
| 3.9.0-beta1 | 344 | 2/1/2022 |
| 3.8.0 | 4,173 | 2/1/2022 |
| 3.8.0-beta3 | 350 | 1/15/2022 |
| 3.8.0-beta2 | 347 | 1/13/2022 |
| 3.8.0-beta1 | 342 | 1/12/2022 |
| 3.7.1 | 13,837 | 1/13/2022 |
| 3.7.0 | 643 | 1/12/2022 |
| 3.7.0-beta1 | 344 | 12/20/2021 |
| 3.6.0 | 865 | 12/20/2021 |
| 3.6.0-beta1 | 354 | 12/14/2021 |
| 3.5.0 | 953 | 12/14/2021 |
| 3.5.0-beta1 | 3,443 | 11/25/2021 |
| 3.4.0 | 4,449 | 11/25/2021 |
| 3.4.0-beta1 | 1,007 | 10/10/2021 |
| 3.3.0 | 296,831 | 10/6/2021 |
| 3.2.0 | 7,633 | 9/3/2021 |
| 3.2.0-beta1 | 401 | 8/17/2021 |
| 3.1.0 | 1,373 | 8/17/2021 |
| 3.0.0 | 3,036 | 7/19/2021 |
| 2.17.0-beta4 | 471 | 6/8/2021 |
| 2.17.0-beta3 | 533 | 5/30/2021 |
| 2.17.0-beta2 | 442 | 5/22/2021 |
| 2.17.0-beta1 | 355 | 5/8/2021 |
| 2.16.3 | 154,092 | 6/8/2021 |
| 2.16.2 | 896 | 5/30/2021 |
| 2.16.1 | 588 | 5/22/2021 |
| 2.16.0 | 919 | 5/8/2021 |
| 2.16.0-beta3 | 376 | 5/2/2021 |
| 2.16.0-beta2 | 388 | 4/28/2021 |
| 2.16.0-beta1 | 458 | 4/7/2021 |
| 2.15.2 | 699 | 5/2/2021 |
| 2.15.1 | 1,694 | 4/28/2021 |
| 2.15.0 | 17,113 | 4/7/2021 |
| 2.15.0-beta5 | 347 | 4/7/2021 |
| 2.15.0-beta3 | 3,438 | 3/21/2021 |
| 2.15.0-beta2 | 464 | 3/18/2021 |
| 2.15.0-beta1 | 386 | 3/17/2021 |
| 2.14.4 | 535 | 4/7/2021 |
| 2.14.2 | 2,202 | 3/21/2021 |
| 2.14.1 | 588 | 3/18/2021 |
| 2.14.0 | 583 | 3/17/2021 |
| 2.14.0-beta3 | 369 | 3/4/2021 |
| 2.14.0-beta2 | 380 | 3/2/2021 |
| 2.14.0-beta1 | 402 | 3/2/2021 |
| 2.13.2 | 757 | 3/4/2021 |
| 2.13.1 | 8,350 | 3/2/2021 |
| 2.13.0 | 12,138 | 3/2/2021 |
| 2.13.0-beta1 | 378 | 2/24/2021 |
| 2.12.0 | 753 | 2/24/2021 |
| 2.12.0-beta1 | 381 | 2/22/2021 |
| 2.11.0 | 7,233 | 2/22/2021 |
| 2.10.1 | 585 | 2/11/2021 |
| 2.10.0 | 4,846 | 1/28/2021 |
| 2.10.0-beta2 | 391 | 1/16/2021 |
| 2.10.0-beta1 | 363 | 1/15/2021 |
| 2.9.2 | 539 | 1/27/2021 |
| 2.9.1 | 733 | 1/16/2021 |
| 2.9.0 | 740 | 1/15/2021 |
| 2.9.0-beta8 | 402 | 1/11/2021 |
| 2.9.0-beta7 | 473 | 12/10/2020 |
| 2.9.0-beta6 | 457 | 11/30/2020 |
| 2.9.0-beta5 | 468 | 11/28/2020 |
| 2.9.0-beta4 | 449 | 11/26/2020 |
| 2.9.0-beta3 | 510 | 10/20/2020 |
| 2.9.0-beta2 | 441 | 10/20/2020 |
| 2.9.0-beta | 472 | 10/20/2020 |
| 2.8.7 | 8,039 | 1/11/2021 |
| 2.8.6 | 4,807 | 12/10/2020 |
| 2.8.5 | 5,699 | 11/30/2020 |
| 2.8.4 | 675 | 11/28/2020 |
| 2.8.3 | 683 | 11/26/2020 |
| 2.8.2 | 1,686 | 10/20/2020 |
| 2.8.1 | 633 | 10/20/2020 |
| 2.8.0 | 689 | 10/20/2020 |
| 2.8.0-beta | 549 | 10/17/2020 |
| 2.7.0 | 693 | 10/17/2020 |
| 2.7.0-beta2 | 446 | 10/17/2020 |
| 2.7.0-beta | 491 | 10/14/2020 |
| 2.6.1 | 603 | 10/17/2020 |
| 2.6.0 | 666 | 10/14/2020 |
| 2.6.0-beta | 573 | 10/8/2020 |
| 2.5.1 | 772 | 10/8/2020 |
| 2.5.0 | 768 | 10/8/2020 |
| 2.4.0 | 724 | 10/5/2020 |
| 2.3.0 | 1,463 | 9/17/2020 |
| 2.2.1 | 17,413 | 9/1/2020 |
| 2.2.0 | 663 | 8/28/2020 |
| 2.1.0 | 11,993 | 6/16/2020 |
| 2.0.0 | 851 | 5/29/2020 |
| 1.7.1 | 680 | 5/28/2020 |
| 1.7.0 | 970 | 5/21/2020 |
| 1.6.0 | 693 | 5/21/2020 |
| 1.5.5 | 726 | 5/17/2020 |
| 1.5.4 | 647 | 5/14/2020 |
| 1.5.3 | 695 | 5/11/2020 |
| 1.5.2 | 722 | 5/6/2020 |
| 1.5.1 | 709 | 5/4/2020 |
| 1.5.0 | 697 | 5/4/2020 |
| 1.4.2 | 693 | 5/4/2020 |
| 1.4.1 | 674 | 5/4/2020 |
| 1.4.0 | 679 | 5/4/2020 |
| 1.3.2 | 724 | 5/4/2020 |
| 1.3.1 | 785 | 4/30/2020 |
| 1.3.0 | 687 | 4/29/2020 |
| 1.2.1 | 705 | 4/29/2020 |
| 1.2.0 | 712 | 4/29/2020 |
| 1.1.0 | 690 | 4/28/2020 |
| 1.0.2 | 681 | 4/28/2020 |
| 1.0.1 | 691 | 4/27/2020 |
| 1.0.0 | 756 | 4/21/2020 |
| 0.5.0 | 726 | 4/13/2020 |
| 0.4.1-alpha8 | 545 | 4/12/2020 |
| 0.4.1-alpha7 | 527 | 4/12/2020 |
| 0.4.1-alpha6 | 534 | 4/12/2020 |
| 0.4.1-alpha4 | 555 | 4/12/2020 |
| 0.4.1-alpha3 | 573 | 4/12/2020 |
| 0.4.1-alpha2 | 490 | 4/12/2020 |
| 0.4.1-alpha1 | 526 | 4/11/2020 |
| 0.4.0-pre | 672 | 4/5/2020 |
| 0.3.2 | 776 | 1/3/2020 |
| 0.3.1 | 752 | 1/3/2020 |
| 0.3.0 | 810 | 1/2/2020 |
| 0.2.2 | 744 | 12/23/2019 |
| 0.2.1 | 710 | 12/23/2019 |
| 0.2.1-pre | 584 | 12/19/2019 |
| 0.2.0 | 723 | 12/20/2019 |
| 0.2.0-pre | 559 | 12/18/2019 |
| 0.1.1-pre | 580 | 12/17/2019 |
| 0.1.0 | 2,096 | 12/19/2019 |
| 0.1.0-pre | 542 | 12/17/2019 |
chat.unfurl request object updated to match API
ElementValue properties updated/fixed
Changed internal use of HttpClient to be less resource intensive and not use BaseAddress
(thanks for raising these @zzullick!)
Support for Manifest APIs and Message Metadata