[PYTHON] Envoyez un e-mail d'amour direct à un nouvel utilisateur lorsqu'un nouvel utilisateur rejoint l'équipe Slack

introduction

J'appartiens à une organisation appelée kosen11s qui n'a qu'une métamorphose avec un nom comme une certaine équipe d'animation de football super-dimensionnelle. Au début, il y avait beaucoup de bruit, "_Automation! Automation! Automation !!!! __", alors je l'ai automatisé.

main.jpg

(Je suis désolé niveau cinq !!!)

Code source

kosen11s/slack_welcome_kosen11s

Jetez un œil au référentiel GitHub! !! Je veux faire en sorte que

environnement

Python 3.5.1 pip 8.1.2

la mise en oeuvre

$ git clone https://github.com/kosen11s/slack_welcome_kosen11s.git
$ cd slack_welcome_kosen11s
$ pip install -r requiredments.txt

La clé API de Slack, etc. sera omise cette fois! !! Je suis désolé!

run.py


from slackbot.bot import Bot
import slackbot_settings

if __name__ == "__main__":
	bot = Bot()
	bot.run()

Je ne sais pas s'il est judicieux de continuer à fonctionner tout le temps, mais n'est-il pas agréable d'avoir un utilisateur connecté?

welcome_bot.py


from slacker import Slacker
import json, requests
import slackbot_settings

welcomeMessage = """
Welcome to kosen11s:tada::tada::tada::tada:\n
Tout d'abord#Présentez-vous brièvement sur la chaîne de profil:heart:\n
Autre#github , #muscle , #nsfw , #Il y a skype! Veuillez entrer correctement:raryosu:\n
Et c'est le dernier! Veuillez remplir la fiche de compétences ci-dessous!\n
L'URL est Salut, Mi, Tsu ♡\n
Ravi de vous rencontrer:octocat:
"""

class Member(object):
	memberCount = 0
	def setMember(self):
		data = getJson()
		self.memberCount = len(data['channel']['members'])

def getJson():
	url = 'https://slack.com/api/channels.join'
	parameters = {
		'token' : slackbot_settings.API_TOKEN_TEAM,
		'name' : 'random'}
	r = requests.get(url, params = parameters)
	data = json.loads(r.text)
	mem = Member()
	if mem.memberCount == 0:
		mem.memberCount = len(data['channel']['members'])
	return data

def welcomePost(user):
	slack = Slacker(slackbot_settings.API_TOKEN)
	slack.chat.post_message(
		'@' + user,
		'Hi! ' + user + " " + welcomeMessage,
		as_user = True,
		link_names = 1
	)

if __name__ == '__main__':
	mem = Member()
	mem.setMember()
	while True:
		jsonChannel = getJson()
		if mem.memberCount < len(jsonChannel['channel']['members']):
			print(mem.memberCount)
			mem.memberCount = len(jsonChannel['channel']['members'])
			url = 'https://slack.com/api/users.info'
			parameters = {
				'token' : slackbot_settings.API_TOKEN_TEAM,
				'user' : jsonChannel['channel']['members'][0]}
			r_2 = requests.get(url, params = parameters)
			jsonUser = json.loads(r_2.text)
			welcomePost(jsonUser['user']['name'])

LE convient.

slackbot_settings.py


API_TOKEN = 'xoxb-***********-************************'
API_TOKEN_TEAM = 'xoxp-***********-***********-***********-**********'

Et si vous l'exécutiez avec ça? ?? ??

スクリーンショット_2016-08-02_午後8_40_51.png

Un message m'est venu (spécifiant directement l'utilisateur à tester) qui a été transformé en une nouvelle personne comme celle-ci! !! !!

À la fin

Pour une raison quelconque, je suis resté coincé dans une jambe avant que le chatbot ne devienne chaud, mais pourquoi n'essayez-vous pas de créer un Slack BOT ou quelque chose de facile?

スクリーンショット 2016-08-02 午後8.51.12.png

Recommended Posts

Envoyez un e-mail d'amour direct à un nouvel utilisateur lorsqu'un nouvel utilisateur rejoint l'équipe Slack
Comment mentionner un groupe d'utilisateurs avec une notification de mou, comment vérifier l'ID d'un groupe d'utilisateurs
[Python] Lancer un message sur le canal Slack
Envoyer un message Push à LINE Bot lorsque le bouton LTE-M est enfoncé [SORACOM]
Je souhaite envoyer automatiquement un e-mail de création d'entreprise
Comment créer un nouveau fichier lorsque le fichier spécifié n'existe pas - Ecrire si le fichier existe
Code pour envoyer du courrier basé sur la liste de diffusion Excel
Changez la destination d'installation lorsque --user est ajouté à pip
Écrivez un script dans Shell et Python pour vous avertir dans Slack lorsque le processus est terminé