Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/seratch/deepl-for-slack
Slack app for DeepL Translate API users
https://github.com/seratch/deepl-for-slack
Last synced: 17 days ago
JSON representation
Slack app for DeepL Translate API users
- Host: GitHub
- URL: https://github.com/seratch/deepl-for-slack
- Owner: seratch
- License: mit
- Created: 2020-06-16T11:36:49.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-09-11T04:51:45.000Z (2 months ago)
- Last Synced: 2024-10-13T17:45:38.086Z (about 1 month ago)
- Language: TypeScript
- Homepage: https://qiita.com/seratch/items/a001985ee1dccaf95727
- Size: 11.9 MB
- Stars: 146
- Watchers: 6
- Forks: 92
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## DeepL App for Slack
DeepL for Slack is a Slack integration that enables end-users to translate channel messages into a different lanuage just by adding reaction emoji.
## Features
### Shortcut to run DeepL Translate API
Slack users can run DeepL Translate API in a modal.
### Post a translated text in thread
This works mostly the same as [reacjilator](https://github.com/slackapi/reacjilator).
## Prerequisites
To run this app, the following accounts are required.
* DeepL Pro (for Developers) account
* Slack workspace and user account
* Heroku accountIf you already have all of them, setting up this app requires only 5 minutes.
## Set up
### Create your DeepL Pro (for Developers) account
* Select "for Developers" plan at https://www.deepl.com/pro/ (be careful not to choose any other)
* Go to your [DeepL Pro Account](https://www.deepl.com/pro-account.html) page
* Save the **Authentication Key for DeepL API** valueRefer to the following resources for more details:
* https://www.deepl.com/en/pro/
* https://www.deepl.com/docs-api/### Create your Slack App
Use the [App Manifest file](https://github.com/seratch/deepl-for-slack/blob/master/app-manifest.yml) to configure a new app!
* Got to **Settings > Install App** in the left pane
* Click **Install App to Workspace** button
* Click **Allow** button in the OAuth confirmation page
* Save the **Bot User OAuth Access Token** value (xoxb-***)* Go to **Settings > Basic Information** in the left pane
* Scroll down to **App Credentials** section
* Click **Show** button in **Signing Secret** section
* Save the **Signing Secret** value### Deploy to Heroku
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/seratch/deepl-for-slack/tree/master)
* Confirm [your billing settings](https://dashboard.heroku.com/account/billing)
* Deploy this app with the following env variables
* `SLACK_SIGNING_SECRET`: **Settings > Basic Information > App Credentials > Signing Secret** in the Slack app config page
* `SLACK_BOT_TOKEN`: **Settings > Install App > Bot User OAuth Access Token** in the Slack app config page
* `DEEPL_AUTH_KEY`: **Authentication Key for DeepL API** in the DeepL Pro account page
* `DEEPL_FREE_API_PLAN`: Set to "1" if you are using the DeepL API Free Plan (the default is "0" for Pro Plan)
* You may need to change the "Dyno Type" to enable the app### Slack App (Step 2)
* Go to **Features > Event Subscriptions** in the left pane
* Set the Request URL to `https://{your app's Heroku domain}/slack/events`
* Click **Save Changes** button at the bottom for sure* Go to **Features > Interactivity & Shortcuts** in the left pane
* Set the Request URL to `https://{your app's Heroku domain}/slack/events`
* Click **Save Changes** button at the bottom for sure### Verify it works in Slack
* Go to your Slack workspace
* Run `/invite @deepl_translation` in a channel
* Post a message saying `In functional programming, a monad is a design pattern that allows structuring programs generically while automating away boilerplate code needed by the program logic. Monads achieve this by providing their own data type (a particular type for each type of monad), which represents a specific form of computation, along with one procedure to wrap values of any basic type within the monad (yielding a monadic value) and another to compose functions that output monadic values (called monadic functions).`
* Add a reaction `:flag-jp:` to the message
* Check a new message in its thread* Click **⚡ (Shortcuts)** button
* Click **Open DeepL Tool**
* Enter a text and the language on the modal### License
The MIT License
### Related Projects
If you are looking for more functionalities, take a look at the following awesome projects:
* https://github.com/monstar-lab-oss/deepl-for-slack-elixir