-
Notifications
You must be signed in to change notification settings - Fork 335
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
137 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
SLACK_ACCESS_TOKEN= | ||
SLACK_SIGNING_SECRET= |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
# Slack Home Tab | ||
|
||
## Install and Run | ||
|
||
Download this example or clone [bottender](https://github.com/Yoctol/bottender). | ||
|
||
```sh | ||
curl https://codeload.github.com/Yoctol/bottender/tar.gz/master | tar -xz --strip=2 bottender-master/examples/slack-home-tab | ||
cd slack-home-tab | ||
``` | ||
|
||
Install dependencies: | ||
|
||
```sh | ||
npm install | ||
``` | ||
|
||
You must fill `SLACK_ACCESS_TOKEN` and `SLACK_SIGNING_SECRET` in your `.env` file. | ||
|
||
If you are not familiar with Slack Bot, you may refer to Bottender's doc, [Slack Setup](https://bottender.js.org/docs/channel-slack-setup), to find detailed instructions. | ||
|
||
After that, you can run the bot with this npm script: | ||
|
||
```sh | ||
npm run dev | ||
``` | ||
|
||
This command starts a server listening at `http://localhost:5000` for bot development. | ||
|
||
If you successfully start the server, you get a webhook URL in the format of `https://xxxxxxxx.ngrok.io/webhooks/slack` from your terminal. | ||
|
||
## Slack App Settings | ||
|
||
To enable the home tab, go to [Slack Developer Console](https://api.slack.com/apps) / [YourApp] / App Home / Show Tabs, and enable the home tab. | ||
|
||
## Set Webhook | ||
|
||
To set the webhook, go to [Slack Developer Console](https://api.slack.com/apps) / [YourApp] / Event Subscriptions and [Slack Developer Console](https://api.slack.com/apps) / [YourApp] / Interactivity & Shortcuts, and use the webhook URL you got from running `npm run dev` to edit Request URLs for your bot. | ||
|
||
You must subscribed the `app_home_opened` event. | ||
|
||
## Idea of This Example | ||
|
||
This example is a bot running on [Slack](https://slack.com/). | ||
|
||
This example contains the following topics: | ||
|
||
- How to use home tab. | ||
- How to update home tab view. | ||
|
||
For more information, check our [Slack guides](https://bottender.js.org/docs/en/channel-slack-block-kit). | ||
|
||
## Related Examples | ||
|
||
- [slack-modal-update](../slack-modal-update) | ||
- [slack-modal-push](../slack-modal-push) | ||
- [slack-modal-form](../slack-modal-form) | ||
- [slack-modal-on-home](../slack-modal-on-home) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
module.exports = { | ||
channels: { | ||
slack: { | ||
enabled: true, | ||
path: '/webhooks/slack', | ||
accessToken: process.env.SLACK_ACCESS_TOKEN, | ||
signingSecret: process.env.SLACK_SIGNING_SECRET, | ||
}, | ||
}, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
const { router, route, slack } = require('bottender/router'); | ||
|
||
let counter = 0; | ||
|
||
function getBlocks(text) { | ||
return [ | ||
{ | ||
type: 'section', | ||
text: { | ||
type: 'mrkdwn', | ||
text, | ||
}, | ||
}, | ||
{ | ||
type: 'actions', | ||
elements: [ | ||
{ | ||
type: 'button', | ||
text: { | ||
type: 'plain_text', | ||
text: 'add count', | ||
emoji: true, | ||
}, | ||
value: 'add count', | ||
}, | ||
], | ||
}, | ||
]; | ||
} | ||
|
||
async function Home(context) { | ||
await context.views.publish({ | ||
userId: context.session.user.id, | ||
view: { | ||
type: 'home', | ||
blocks: getBlocks(`click count: ${counter}`), | ||
}, | ||
}); | ||
} | ||
|
||
async function OnBlockActions(context) { | ||
if (context.event.action.value === 'add count') { | ||
counter += 1; | ||
return Home; | ||
} | ||
} | ||
|
||
async function Default(context) { | ||
await context.sendText('Hello World'); | ||
} | ||
|
||
module.exports = async function App(context) { | ||
return router([ | ||
slack.event('app_home_opened', Home), | ||
slack.event('block_actions', OnBlockActions), | ||
route('*', Default), | ||
]); | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
{ | ||
"scripts": { | ||
"dev": "bottender dev", | ||
"start": "bottender start" | ||
}, | ||
"dependencies": { | ||
"bottender": "1.5.1-alpha.4" | ||
} | ||
} |