ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

Slack Notifications With Python

Updated on February 10, 2019
Photo by Lee Campbell
Photo by Lee Campbell | Source

Slack bots are used these days for many purposes. Maybe you want to notify your team members when a new issue has been assigned to them on Github or you want your team to be up to date .

Though we won’t be showing how to write a Slack bot in this post, the knowledge you gain here is a first step to writing your own bot using Python.

Requirements

  1. A Slack team you belong to
  2. Python 3 installed

It is much advisable to use Python virtual environments when writing code, so we will create our virtual environment named slack_env using the terminal or command prompt, activate it and install Python’s popular requests library

python3 -m venv slack_env
source slack_env/bin/activate
pip install requests



Next you have to hit http://api.slack.com, click on Your Apps, click on Create New App, give it a name and select your Slack Workspace that will be used. You should now see a page that looks like this

Select the first item (Incoming Webhooks) and activate it as below.

We are almost there. Scroll to the bottom of the page and add a click on Add New Webhook to workspace and select a channel(or person) you want to notify. You can add as many webhook urls as you want and we are good to go. It is with this webhook url(s) that we will send post requests to notify those in the channel. Enough of the configurations. We are good to go.


Let us then write a simple function that takes the webhook url and message as parameters and sends a slack notification to the channel(or user) with the said webhook url


The Code

import requests
def send_slack_notif(webhook_url, message):
	response = requests.post(webhook_url, json={'text':message})
	if response.status_code != 200:
		print("Error sending notification .Status code {}".format(response.status_code))
	else:
print("Notification successfully sent")


With the code block above, you can start notifying your team mates about what you want them to be notified about. For more, check the Slack API for formatting and @mentioning users

Conclusion

If you created the webhook url to a slack channel you belong to, or to a team member, they will receive an alert that you installed the app to the channel and if you run the application by calling the function above with appropriate parameters, the user(s) will be notified.

© 2019 Ngenge Senior

Comments

    0 of 8192 characters used
    Post Comment
    • profile image

      Ngiri 

      6 months ago

      Nice piece

    working

    This website uses cookies

    As a user in the EEA, your approval is needed on a few things. To provide a better website experience, hubpages.com uses cookies (and other similar technologies) and may collect, process, and share personal data. Please choose which areas of our service you consent to our doing so.

    For more information on managing or withdrawing consents and how we handle data, visit our Privacy Policy at: https://hubpages.com/privacy-policy#gdpr

    Show Details
    Necessary
    HubPages Device IDThis is used to identify particular browsers or devices when the access the service, and is used for security reasons.
    LoginThis is necessary to sign in to the HubPages Service.
    Google RecaptchaThis is used to prevent bots and spam. (Privacy Policy)
    AkismetThis is used to detect comment spam. (Privacy Policy)
    HubPages Google AnalyticsThis is used to provide data on traffic to our website, all personally identifyable data is anonymized. (Privacy Policy)
    HubPages Traffic PixelThis is used to collect data on traffic to articles and other pages on our site. Unless you are signed in to a HubPages account, all personally identifiable information is anonymized.
    Amazon Web ServicesThis is a cloud services platform that we used to host our service. (Privacy Policy)
    CloudflareThis is a cloud CDN service that we use to efficiently deliver files required for our service to operate such as javascript, cascading style sheets, images, and videos. (Privacy Policy)
    Google Hosted LibrariesJavascript software libraries such as jQuery are loaded at endpoints on the googleapis.com or gstatic.com domains, for performance and efficiency reasons. (Privacy Policy)
    Features
    Google Custom SearchThis is feature allows you to search the site. (Privacy Policy)
    Google MapsSome articles have Google Maps embedded in them. (Privacy Policy)
    Google ChartsThis is used to display charts and graphs on articles and the author center. (Privacy Policy)
    Google AdSense Host APIThis service allows you to sign up for or associate a Google AdSense account with HubPages, so that you can earn money from ads on your articles. No data is shared unless you engage with this feature. (Privacy Policy)
    Google YouTubeSome articles have YouTube videos embedded in them. (Privacy Policy)
    VimeoSome articles have Vimeo videos embedded in them. (Privacy Policy)
    PaypalThis is used for a registered author who enrolls in the HubPages Earnings program and requests to be paid via PayPal. No data is shared with Paypal unless you engage with this feature. (Privacy Policy)
    Facebook LoginYou can use this to streamline signing up for, or signing in to your Hubpages account. No data is shared with Facebook unless you engage with this feature. (Privacy Policy)
    MavenThis supports the Maven widget and search functionality. (Privacy Policy)
    Marketing
    Google AdSenseThis is an ad network. (Privacy Policy)
    Google DoubleClickGoogle provides ad serving technology and runs an ad network. (Privacy Policy)
    Index ExchangeThis is an ad network. (Privacy Policy)
    SovrnThis is an ad network. (Privacy Policy)
    Facebook AdsThis is an ad network. (Privacy Policy)
    Amazon Unified Ad MarketplaceThis is an ad network. (Privacy Policy)
    AppNexusThis is an ad network. (Privacy Policy)
    OpenxThis is an ad network. (Privacy Policy)
    Rubicon ProjectThis is an ad network. (Privacy Policy)
    TripleLiftThis is an ad network. (Privacy Policy)
    Say MediaWe partner with Say Media to deliver ad campaigns on our sites. (Privacy Policy)
    Remarketing PixelsWe may use remarketing pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to advertise the HubPages Service to people that have visited our sites.
    Conversion Tracking PixelsWe may use conversion tracking pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to identify when an advertisement has successfully resulted in the desired action, such as signing up for the HubPages Service or publishing an article on the HubPages Service.
    Statistics
    Author Google AnalyticsThis is used to provide traffic data and reports to the authors of articles on the HubPages Service. (Privacy Policy)
    ComscoreComScore is a media measurement and analytics company providing marketing data and analytics to enterprises, media and advertising agencies, and publishers. Non-consent will result in ComScore only processing obfuscated personal data. (Privacy Policy)
    Amazon Tracking PixelSome articles display amazon products as part of the Amazon Affiliate program, this pixel provides traffic statistics for those products (Privacy Policy)
    ClickscoThis is a data management platform studying reader behavior (Privacy Policy)