Slack.NetStandard
10.1.1
dotnet add package Slack.NetStandard --version 10.1.1
NuGet\Install-Package Slack.NetStandard -Version 10.1.1
<PackageReference Include="Slack.NetStandard" Version="10.1.1" />
<PackageVersion Include="Slack.NetStandard" Version="10.1.1" />
<PackageReference Include="Slack.NetStandard" />
paket add Slack.NetStandard --version 10.1.1
#r "nuget: Slack.NetStandard, 10.1.1"
#:package Slack.NetStandard@10.1.1
#addin nuget:?package=Slack.NetStandard&version=10.1.1
#tool nuget:?package=Slack.NetStandard&version=10.1.1
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 List<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 (>= 13.0.1)
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.1.1 | 29 | 2/12/2026 |
| 10.1.0 | 31 | 2/12/2026 |
| 10.0.0 | 5,144 | 11/28/2025 |
| 9.10.0 | 5,744 | 10/14/2025 |
| 9.9.0 | 169,674 | 3/4/2025 |
| 9.8.0 | 577 | 3/1/2025 |
| 9.7.3 | 10,867 | 2/9/2025 |
| 9.7.2 | 2,853 | 2/5/2025 |
| 9.7.1 | 35,074 | 12/16/2024 |
| 9.7.0 | 2,007 | 12/1/2024 |
| 9.6.1 | 6,846 | 11/13/2024 |
| 9.6.0 | 11,055 | 10/18/2024 |
| 9.5.0 | 28,727 | 6/28/2024 |
| 9.4.0 | 1,528 | 6/26/2024 |
| 9.3.0 | 188,775 | 2/28/2024 |
| 9.2.0 | 259 | 2/28/2024 |
| 9.1.1 | 5,883 | 1/25/2024 |
| 9.1.0 | 249 | 1/24/2024 |
| 9.0.0 | 205 | 1/24/2024 |
| 8.2.1 | 1,404 | 1/19/2024 |
Add Entity API
Add Work Objects support