Automate the Boring Stuff with Slackbot - PyCon SG 2019

Published on: Monday, 11 November 2019

Speaker: Takanori Suzuki
Vice Chair of PyCon JP Committee, Python Boot Camp

Today, there are many tasks to repeat in the company/community. In addition, we often use chat such as Slack for daily communication. So, I created a chatbot(PyCon JP Bot: to automate various boring tasks related to holding PyCon JP. In this talk, I will first explain how to create a chatbot using slackbot ( I will tell you how to registers bot's integration on Slack and how to create a simple bot in Python that responds to specific keywords. And as a specific case, I will explain how to make a bot command to perform the following operations and technical problems. - Emoji reaction - Calculator: SymPy - Karma(plusplus): Peewee - Search issues, display issue details: JIRA API - Create multiple issues from a template: JIRA API, Sheets Spreadsheet API - Search files from Google Drive: Google Drive API - Account management of G Suite(user, alias, group and member): G Suite API - etc. --- notes --- If this talk is accepted, I will participate from Japan. When are you informed of talk adoption? Because Aug 31 is too late to attend from abroad. I presented this talk in PyCon APAC. And I will present in PyCon Thailand, Malaysia and Taiawn. - slide: I have a lot of public speaking experience(presenter, lecuturer and MC), but I have experienced in English several times. I have been developing PyConJP Bot since 2016( --- outilne --- If you like 30 minutes, I can reduce case studies and adjust the time. The outline of my presentation is below: - Who am I (1m) - Back ground, motivation (2m) - Lots of tasks to hold Conference - Staffs ask me the same thing - Programmer is Lazy - Let's create a secretary - Goal(1m) - You'll learn how to create simple chatbot(one way) - You'll learn how to create interactive bot - You'll learn how to extend bot using libraries and APIs through various case studies - Why Slack? (1m) - Easy to access Slack - I want to do everything in Slack - Simple integration with Incoming Webhook (5m) - System overview( - Create Incoming Webhooks Integration on Slack: Generate Webhook URL - Send a simple message with cURL - Send a simple message with Requests - Send a complex message with Requests - Summary - How to create slackbot (5m) - System overview - Create bot user on Slack - Install slackbot library - Create a simple bot with slackbot - Simple plugin with slackbot - Run slackbot - Extend slackbot (5m) - listen_to and respond_to decolator - emoji reaction(message.react() method) - Extract parameters on chat message - settings of slackbot - Attachments support - Summary of slackbot - Case study (18m) - Calculator function using SymPy: Install SymPy, sample code of command - Plusplus function using Peewee ORM: Install Peewee, sample code of model and command - Display JIRA issue and Search issues - System overview - Install Python JIRA - Authentication of JIRA API - Get Issue object and search issues code - JIRA API and jira package - Create multiple issues from a template - Motivation - System overview - Google Authorization is very Complex - Get Spreadsheet Data with Sheets API - Create JIRA Issue - Sample template command - Account management of G Suite - Motivation - System overview - Get user list, Insert user - Suspend, Resume, Delete user - I can completely forget Google Admin web site - Summary(1m) - Incoming Webhooks - Slackbot - Slackbot with Libraries and APIs - Next steps (1m) - Let's make your own Slackbot - Let's connect your bot with libraries and APIs - Automate your Boring Stuff with bot - Questions and Answers

About the speaker:

Takanori is a Vice Chairperson of PyCon JP Committee( He is also a director of BeProud Inc.(, and his title is "Python Climber". Takanori held PyCon JP 2014 to 2016 as the chairperson. Currently he teaches Python to beginners as a lecturer at Python Boot Camp( all over Japan. In addition, he published several Python books. Tananori plays trumpet, climbs boulder, loves Lego, ferrets and beer.

Event Page:

Produced by Engineers.SG