Azure Functions ile Slack Bot Yapımı

Hikayemiz nedir?

Ekip olarak yemek yemeyi çok — fazlaca çok — seviyoruz. Öğlen yemekleri için yaptığımız gurme kaçamakları organizasyonlarımız da meşhurdur :)

O halde uygulayalım

Yazının devamındaki uygulamaları çalıştırabilmek için bir takım ön gereksinimlerimiz mevcut. Şöyle ki;

  • Bir Azure hesabına ihtiyacımız var. Azure Functions ve Redis kuracağız.
  • Bir Slack çalışma grubuna ihtiyacımız var. Bot ve Slack uygulaması için kullanacağız.

Slack Konfigürasyonu

Azure Konfigürasyonu

Azure üzerinde iki uygulama kullanacağız.

payload={
"type": "interactive_message",
"actions": [
{
"name": "backgammon",
"type": "button",
"value": "tavla"
}
],
"callback_id": "menu_options_2319",
"team": {
"id": "T8UQAFR3N",
"domain": "azurefans"
},
"channel": {
"id": "C8UMRQYCB",
"name": "general"
},
"user": {
"id": "U8VLEHP6J",
"name": "selcukusta"
},
"action_ts": "1516342843.789131",
"message_ts": "1516342841.000102",
"attachment_id": "1",
"token": "S1GwWyH8SygTOIctpxk7EDgK",
"is_app_unfurl": false,
"original_message": {
"text": "Would you like to play a game?",
"username": "Hook Sample",
"bot_id": "B8UMZLBDH",
"attachments": [
{
"callback_id": "menu_options_2319",
"text": "Choose a game to play",
"id": 1,
"actions": [
{
"id": "1",
"name": "chess",
"text": "Chess",
"type": "button",
"value": "satranc",
"style": ""
},
{
"id": "2",
"name": "backgammon",
"text": "Backgammon",
"type": "button",
"value": "tavla",
"style": ""
}
],
"fallback": "Choose a game to play"
}
],
"type": "message",
"subtype": "bot_message",
"ts": "1516342841.000102"
},
"response_url": "https:\/\/hooks.slack.com\/actions\/T8UQAFR3N\/302432451511\/BPXRvlrVHZ6K6Yl3YxDT7zYG",
"trigger_id": "301273509075.300826535124.7ece498ce2b00cea11c798fdb7efa461"
}

Sistemler hazır

Son durumda ihtiyacımız olan 3 sistem de (Slack, Redis, Azure Functions) hazır durumda. Yapmamız gereken son şey, bot kullanıcısı ile istediğimiz kanaldaki üyelerin listesini almak ve her birine mesaj atmak.

Bitirelim şu işi

Mesaj atma işi için küçük bir Python scripti geliştirelim.

Sonuç

--

--

Engineering Manager (at) Hepsiburada. Former trainer & consultant. Tweets are mostly about tech and coding. https://superpeer.com/selcukusta

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Selçuk Usta

Selçuk Usta

Engineering Manager (at) Hepsiburada. Former trainer & consultant. Tweets are mostly about tech and coding. https://superpeer.com/selcukusta