Bu gevşek robotu oluşturun ve kanalınıza daha dostça bir hava katın.

Yeni kullanıcıları kanalınıza davet etmek onları evlerinde hissettirir, ancak katılan her kullanıcıyı takip etmek yorucu bir iş olabilir. Slack karşılama botunun devreye girdiği yer burasıdır. Bot, her yeni kanal kullanıcısına kişiselleştirilmiş bir karşılama mesajı gönderir. Her zaman çevrimiçidir, bu nedenle geç karşılama mesajları olmayacaktır.

Botunuzun kimlik bilgilerini nasıl ayarlayacağınızı, Slack'te olayları nasıl dinleyeceğinizi ve kullanıcılara nasıl mesaj göndereceğinizi öğreneceksiniz.

Slack Bot Oluşturma ve API Jetonunu Alma

Oluşturmak gevşek hesap veya mevcut hesabınıza giriş yapın. Sonra bir oluştur yeni Slack çalışma alanı aktif çalışma alanınıza kurmadan önce botunuzu test etmek için.

Yeni çalışma alanınıza giriş yapın. Slack sizin için otomatik olarak rastgele ve genel bir kanal oluşturur.

Çalışma alanının sol alt kısmındaki Uygulama bölümüne dikkat edin. Botumuzu oluşturduğunuzda burada görünecektir. Şuraya git: Slack API web sitesi.

instagram viewer

Tıklamak Bir uygulama oluştur. Uygulamayı oluştur sıfırdan görünen pencerede.

Uygulamanızı adlandırın ve geliştirmek istediğiniz çalışma alanını seçin.

Ardından üzerine tıklayın Uygulama Oluştur düğme. Tıkladığınızda, uygulamanızın temel bilgilerini içeren bir sayfaya yönlendirilirsiniz. Uygulama kimlik bilgileri altındaki imzalama sırrını not edin. Botunuz, bir olayın Slack'ten geldiğini ve iletim sırasında kurcalanmadığını doğrulamak için imzalama sırrını kullanacaktır.

OAuth ve İzinler özelliğine gidin.

OAuth & Permissions altında Bot Token Kapsamlarına gidin. Botunuzun çalışma alanınızda neler yapabileceğine dair izinleri ekleyeceğiniz yer burasıdır. Ekle kullanıcılar: oku kapsam. Bu kapsam, botunuzun çalışma alanınızdaki kişileri görmesini sağlar. Ayrıca, sohbet: yaz botunuzun çalışma alanına mesaj göndermesini sağlayacak kapsam.

Botunuzun temel bilgilerine geri dönün ve tıklayın Workspace'e yükle.

Görünen bir sonraki sayfada izin ver'i tıklayın. Artık botu çalışma alanınıza yüklemeyi bitirdiniz. OAuth ve İzinler özelliğine gidin. Slack'in kurulumdan sonra oluşturduğu Bot Kullanıcısı OAuth Jetonunu not edin. Bot, çalışma alanınızın uygulama bölümünde görünür olacaktır.

Artık botu çalışma alanınıza yüklediniz, onu kontrol etmek için kod yazabilirsiniz.

Ortamınızı Hazırlamak

aşina olmanız gerekir Python'un temelleri bu kod örneklerini takip etmek için.

Yeni bir sanal ortam oluşturun ve bir .env dosya. .env dosyasını, gizli tutmanız gereken belirtecinizi ve imzalama sırrınızı saklamak için kullanacaksınız. .env dosyasını herhangi bir genel platforma yüklememelisiniz.

Gerekli kitaplıkları yüklemek için bir terminalde aşağıdaki komutu çalıştırın:

pip kurulumu slack-sdk pathlib dotenv flask slackeventsapi

slack-sdk kitaplığı, API yöntemleri, Web API istemcileri ve OAuth dahil olmak üzere Slack uygulamaları ve entegrasyonları oluşturmak için size araçlar sağlayacaktır. pathlib ve dotenv, ortam değişkenlerini yüklemenize yardımcı olacaktır. flask, HTTP isteklerini ve yanıtlarını işlemenize yardımcı olacaktır. slackeventsapi size Slack'ten olayları alan ve yöneten bir olay dinleyicisi sağlayacaktır.

Tam kaynak kodu bir GitHub deposu.

Gerekli Kitaplıkları İçe Aktarma

Yeni bir Python dosyası oluşturun ve işlevlerini kodunuzda kullanabilmek için önceden kurduğunuz kitaplıkları içe aktararak başlayın.

içe aktarmak gevşek_sdk gibi gevşek
içe aktarmak işletim sistemi
itibaren yol lib içe aktarmak Yol
itibaren dotenv içe aktarmak load_dotenv
itibaren matara içe aktarmak şişe
itibaren slackeventsapi içe aktarmak SlackEventAdapter

Python'un işletim sistemi modülü dille birlikte gelir, bu nedenle yüklemenize gerek yoktur. SlackEventAdapter, Slack API'sinden olayları işleyen slackeventsapi modülünden bir sınıftır.

Slack Bot Kurulumu

.env dosyasında iki değişken oluşturun. Bir SLACK_BOT_TOKEN olarak adlandırın ve ona Bot Kullanıcısı OAuth Jetonu atayın. Diğerini SLACK_SIGNING_SECRET olarak adlandırın ve ona imzalama sırrını atayın. Python dosyasına geri dönün ve bir Flask nesnesi oluşturun. Ardından, dotenv modülünden load_dotenv işlevini kullanarak ortam değişkenlerini .env dosyasından yükleyin.

uygulama = Şişe (__name__)
env_path = Yol('.') / '.env'
load_dotenv (dotenv_path=env_path)

Bir slack_event_adapter örneği oluşturun. İsteklerin kimliğini doğrulamak için SLACK_SIGNING_SECRET ortam değişkenini kullanarak Slack API'sinden gelen olayları işleyecektir.

slack_event_adapter = SlackEventAdapter (os.environ["SLACK_SIGNING_SECRET"],
'/slack/olaylar', uygulama)

/slack/events, Slack API'sinin olayları göndermek için kullanacağı bitiş noktasıdır.

Slack API'sine mesaj gönderecek bir WebClient örneği oluşturun. Botun kimliğini almak için bir API çağrısı yapın.

müşteri = gevşek. WebClient (token=os.environ["SLACK_BOT_TOKEN"])
BOT_ID = client.api_call("kimlik doğrulama testi")['Kullanıcı kimliği']

Bir kanala katılan yeni kullanıcılara göndereceğiniz mesajı ayarlayın. Karşılanan kullanıcıları takip edecek boş bir küme başlatın.

GREETING_MESSAGE = "Merhaba {user_name}, {channel_name} kanalına hoş geldiniz" \
"kanal! Burada olduğun için heyecanlıyız."
memnuniyetle_kullanıcılar = set()

Selamlamayı beğeninize göre özelleştirebilirsiniz.

"Üye Kanala Katıldı" Olayını İşleyecek Bir İşlev Oluşturma

Bir olay dinleyicisi kurun. Member_joined_channel olayını dinleyecektir.

@slack_event_adapter.on('member_joined_channel')

Bir kullanıcı bir kanala katıldığında çağıracağınız bir işlev tanımlayın. Olay verilerinden kullanıcı kimliğini ve kanal kimliğini çıkarmak için işlevi kullanın. Kullanıcının kanalda yeni olup olmadığını kontrol edin. Değilse, WebClient sınıfını kullanarak kullanıcı ve kanal bilgilerini alın. Kişiselleştirilmiş bir karşılama mesajı oluşturun. Selamı kanala gönder

kesinhandle_member_joined_channel(olay_verisi):
user_id = olay_verisi['etkinlik']["kullanıcı"]
channel_id = olay_verisi['etkinlik']['kanal']

# Yalnızca kullanıcı yeniyse karşılama mesajı gönderin
eğer Kullanıcı kimliği Olumsuziçinde memnuniyetle_kullanıcılar:
memnuniyetle_kullanıcılar.add (kullanıcı_kimliği)

user_info = client.users_info (user=user_id)
kullanıcı_adı = kullanıcı_bilgisi["kullanıcı"]['isim']

channel_info = client.conversations_info (channel=channel_id)
kanal_adı = kanal_bilgisi['kanal']['isim']

karşılama = GREETING_MESSAGE.format (kullanıcı_adı=kullanıcı_adı,
kanal_adı=kanal_adı)

client.chat_postMessage (channel=channel_id, text=selamlama)

event_data, bir kullanıcının bir kanala katıldığı olayla ilgili tüm bilgileri içerir.

Flask uygulamasını başlatın ve betiği çalıştırın. Ana program olarak çalıştırılırsa (modül olarak içe aktarılmaz), hata ayıklama modunda çalıştırın ve 5000 numaralı bağlantı noktasını dinleyin.

eğer __isim__ == "__ana__":
app.run (hata ayıklama=Doğru, bağlantı noktası=5000)

Hata ayıklama modu, kodda değişiklik yaptığınızda uygulamayı otomatik olarak yeniden yükler. Hata ayıklama modunu bir üretim ortamında kullanmayın, hassas bilgileri açığa çıkarabilir ve uygulamanızı saldırılara karşı savunmasız hale getirebilir. Uygulamanızı çalıştırın. 5000 numaralı bağlantı noktasında yerel bir sunucu olarak çalışacaktır.

Botunuzla Mantığı Bağlama

Mantığı oluşturduktan sonra artık çalışma alanınızdaki bot'a bağlanmanız gerekiyor. Bu, çalışma alanınızda işlemleri gerçekleştirmek için bu mantığı kullanmasını sağlayacaktır. İndirip çalıştırarak başlayın Ngrok. Ngrok, yerel web sunucunuzu internete açmanıza yardımcı olacaktır.

Çalıştırdıktan sonra, yerel sunucunuzun adresini Ngrok'un adresiyle eşleştirmek için aşağıdaki komutu kullanın.

ngrok http 500

Yerel sunucunuzla eşleşen Ngrok adresini kopyalayın.

Slack API web sitesine gidin. Altında Etkinlik Abonelikleri özelliği, olayları etkinleştirin. Altında İstek URL'si Ngrok adresini girin ve ardından /slack/events. Bu, son noktanıza işaret edecektir.

Ardından, Member_joined_channel etkinliğine abone olun. Bu, bir kullanıcı bir kanala her katıldığında botunuza bildirim gönderir. Tıklamak Değişiklikleri Kaydet. Slack, bu etkinliğe abone olmanız için ihtiyaç duyduğunuz kapsamları otomatik olarak ekleyecektir. Bir kapsamı her değiştirdiğinizde, uygulamanızı çalışma alanında yeniden yüklemeniz gerekir.

Uygulamanızı yeniden yükleyin'e tıklayın.

Botunuzu Test Etme

Çalışma alanınıza gidin. Botu kullanmak istediğiniz kanala gidin. Bot'a doğrudan mesaj gönderin. Örneğin, @Karşılama Botu. Botu kanala eklemek için bir istem açılır. ekle'yi tıklayın.

Artık, kanala her yeni kullanıcı katıldığında, bot bir karşılama mesajı gönderecek.

Yukarıdaki resim, botun yeni bir kullanıcıyı kanala davet ettiğini gösteriyor.

Gevşek Çalışma Alanınızdan En İyi Şekilde Yararlanma

Slack botları, Slack mesajlaşma platformunun işlevselliğini genişletmenin tek yolu değildir. Diğer yöntem ise üçüncü taraf araçları Slack ile entegre etmektir. Platform içinde ek işlevsellik sağlarlar.

Slack'teki üretkenliğinizi artıracakları için bu entegrasyonlara alışın.