简体   繁体   中英

How to send user a message and create a channel right after installation of Slack app

As the title suggests, I'm wondering how we could:

  • Create a channel
  • Send user an initial message

right after the user installs the Slack app (distributable app) for the first time in a workspace?

A similar question was asked previously but the answer was too concise , and I wonder if someone could be so kind to give a hint using this sample Django Slack app code ? Cheers.

On the 'OAuth & Permissions' page of your app, there is a section for 'Redirect URLs'

What it does is that when user installs the app, it redirects to the user implemented endpoint.

OAuth Flow

  1. when the user installs the app using 'Add To Slack' button or using https://slack.com/oauth/authorize


    Details here : https://api.slack.com/legacy/oauth#authenticating-users-with-oauth__the-oauth-flow__step-1---sending-users-to-authorize-andor-install

  2. The generated code is redirected to your specified endpoint - "Redirect URL" https://api.slack.com/legacy/oauth#authenticating-users-with-oauth__the-oauth-flow__step-2---users-are-redirected-to-your-server-with-a-verification-code

  3. Solution: Now you need to implement this endpoint to generate access token https://api.slack.com/legacy/oauth#authenticating-users-with-oauth__the-oauth-flow__step-3---exchanging-a-verification-code-for-an-access-token

  • After generating token, you can write your code to :
    1. Create a channel
    2. Send user an initial message

After reading Suyash's explanations, I carefully examined the sample code provided by bolt-python for Django again and realized:

  1. bolt-python takes care of OAuth flow and we only need to specify the correct URLs (for redirect URLs as well as event subscriptions, interactivity, etc.) in the app panel.
  2. What one could do is perform all these desired installation actions inside DjangoInstallationStore.save method because that's when an installation is finally completed. In my case I created a SlackManager with a specific method which I could use (via local import ) to perform post-installation actions.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM