Skip to main content

Slack Web API Client for TypeScript

The slack-web-api-client library is a type-safe Slack Web API client that provides several key benefits, including:

  • A fetch-based implementation, which is compatible with most runtimes
  • Strong types for Web API responses and Block Kit, which make coding enjoyable and predictable
  • Zero additional dependencies, allowing developers to integrate this library into their projects without any obstacles

Getting Started

The slack-web-api-client library also offers a native package for the Deno runtime. To import the module for Slack’s automation platform, use the following syntax:

import { SlackFunction } from "deno-slack-sdk/mod.ts";

export const def = DefineFunction({
  callback_id: "hello",
  title: "Hello World",
  source_file: "functions/hello.ts",
  input_parameters: { properties: {}, required: [] },
  output_parameters: { properties: {}, required: [] },
});

import { SlackAPIClient } from "https://deno.land/x/slack_web_api_client@0.11.0/mod.ts";

export default SlackFunction(def, async ({ token }) => {
  const client = new SlackAPIClient(token, {
    throwSlackAPIError: false, // for the compatibility with deno-slack-api library
  });
  const response = await client.chat.postMessage({
    channel: "#random",
    text: ":wave: what's up?",
  });

  // ....
});

This allows you to use the powerful features of the slack-web-api-client library in your Deno projects with ease.

An alternative way is to use skypack CDN. If you prefer this way, you need to add "cdn.skypack.dev" to outgoingDomains in manifest.ts.

An alternative way to use the slack-web-api-client library is through the skypack CDN. To do this, simply add "cdn.skypack.dev" to the outgoingDomains section in your manifest.ts file. This allows you to use the library within your project:

import { SlackAPIClient } from "https://cdn.skypack.dev/slack-web-api-client?dts";

Lastly, Slack’s automation platform doesn’t support jsr.io yet, though this library can be accessed there as well: https://jsr.io/@seratch/slack-web-api-client

// deno add @seratch/slack-web-api-client
import { SlackAPIClient } from "@seratch/slack-web-api-client.ts";

When you need this library for Deno apps outside of the automation platform, relying on jsr.io could be a simpler approach for resolving dependencies.