Bu eğitimdeki kodu çevrimiçi olarak çalıştırın ve düzenleyin
Kodu çalıştırHer iki durumda da, iş mantığınızın tamamının kodlandığı bir DataLab çalışma kitabına sahip olmalısınız:

3. Slack Mesajını Göndermek
Yani, Slack uygulaması: tamam. İş mantığı: tamam. Python not defterini Slack ile entegre etmek için iki şey yapmamız gerekiyor: Slack OAuth belirtecini çalışma kitabında saklamak ve Slack’e mesaj göndermek için biraz Python kodu yazmak.
Slack OAuth belirtecini saklayın
Python not defterimizin, Slack çalışma alanınıza mesaj göndermeye yetkili olduğunu kanıtlamak için OAuth belirtecine ihtiyacı var. Bu OAuth belirtecini not defterinizin bir kod hücresine kopyalayıp yapıştırabilirsiniz. Ancak bu güvenli bir yaklaşım değildir ve önerilmez. Not defterinizi bir başkasıyla paylaşırsanız, OAuth belirtecini görebilir.
Bu yaklaşım aynı zamanda Slack mesajları göndermek istediğiniz her çalışma kitabında bu kopyalama-yapıştırma işlemini tekrarlamanızı gerektirir. Bu OAuth belirtecini güncellemek isterseniz, her çalışma kitabını tek tek düzenlemeniz gerekecektir.
Daha güvenli ve ölçeklenebilir bir yaklaşım, Slack OAuth belirtecini bir ortam değişkeninde saklamaktır. Bu ortam değişkenini bağladığınızda, Python oturumunuzda kullanılabilir hale gelecektir. Çalışma kitabınızda:
- Sol taraftaki “Environment” sekmesine tıklayın
- “Environment Variables”ın yanındaki artı simgesine tıklayın
- “Add Environment Variables” modülünde:
- “Name”i
SLACK_TOKENolarak ayarlayın - “Value” alanına, bu kılavuzun 1. adımında aldığınız OAuth belirtecini kopyalayıp yapıştırın.
- “Environment Variables Set Name”i “Slack” olarak ayarlayın (aslında herhangi bir şey olabilir)

Tüm alanları doldurduktan sonra “Create”, “Next” ve son olarak “Connect”e tıklayın. DataLab oturumunuz yeniden başlayacak ve SLACK_TOKEN artık çalışma kitabınızda bir ortam değişkeni olarak kullanılabilir olacak. Bunu aşağıdaki kodla bir Python hücresi oluşturup çalıştırarak doğrulayabilirsiniz:
import os
slack_token = os.environ["SLACK_TOKEN"]
print(slack_token)
Aynı hizmet hesabı kimlik bilgilerini başka bir çalışma kitabında yeniden kullanmak isterseniz, ortam değişkenini tekrar kurmanıza gerek yoktur: ortam değişkenini diğer çalışma kitaplarında da kullanabilirsiniz.
Slack mesajı göndermek için Python kodu
SLACK_TOKEN hazır olduğuna göre, not defterinizin altına Slack çalışma alanınızdaki #bot-updates kanalına örnek bir mesaj gönderen küçük bir kod parçası ekleyin:
import os
from slack_sdk import WebClient
message = "This is my first Slack message from Python!"
# Set up a WebClient with the Slack OAuth token
client = WebClient(token=os.environ["SLACK_TOKEN"])
# Send a message
client.chat_postMessage(
channel="bot-updates",
text=message,
username="Bot User"
)
Bu kod Slack’in resmi Python SDK’sını kullanır. Bu kodu çalıştırın! Bu mesajın Slack çalışma alanınızda göründüğünü görmelisiniz:

Bu anlamsız bir örnek mesajdı, ancak örnek çalışma kitabında yaptığımız gibi, iş mantığınızın sonucuna dayalı bir mesaj da oluşturabilirsiniz:
message = f"Total value of my portfolio on {portfolio_df.index[-1]:%B %d, %Y} is ${latest_total:,.2f}."
Şu sonucu elde edersiniz:

Son olarak, bu mesajı oluşturan DataLab çalışma kitabına Slack’ten kolayca geçiş yapmak isterseniz, not defterinize bir bağlantı eklemek için DL_WORKBOOK_ID ortam değişkeninden de yararlanabilirsiniz:
message = f"""
Total value of my portfolio on {portfolio_df.index[-1]:%B %d, %Y} is ${latest_total:,.2f}.
For the full analysis, check <https://www.datacamp.com/workbook/w/{os.environ.get('DL_WORKBOOK_ID', 'invalid')}/edit|this workbook> (updates daily)
"""
Şu sonucu elde edersiniz:

4. Otomatikleştirin!
İlgili bir analiz yapan ve bu analizin özetini, insanlar daha derine inmek isterse tam not defterine geri bağlantıyla birlikte Slack’e gönderen bir Python betiği yazdınız; harika! Peki bu not defterini her hafta ya da her gün çalışacak şekilde yapılandırıp yeni sonuçlardan otomatik olarak haberdar olsanız nasıl olurdu? İyi haber şu ki yapabilirsiniz! DataLab, tam da bunu yapmak için zamanlanmış çalıştırmaları destekler.
- Üstteki menü çubuğunda Run > Schedule Run’a tıklayın
- Takvimi dilediğiniz gibi yapılandırın:
- Not defterini günlük ya da haftalık bir zamanlamada çalışacak şekilde ayarlayın; haftalık olması durumunda saat ve haftanın günü seçenekleri mevcuttur
- Not defteri başarıyla tamamlandığında, bir hatayla karşılaştığında veya her ikisinde de bilgilendirmek istediğiniz DataCamp kullanıcılarını ekleyin. Hata verdiğinde size mesaj gelmesini sağlamak iyi bir fikirdir; böylece gerektiğinde müdahale edebilirsiniz.

Yukarıdaki ekran görüntüsündeki gibi yapılandırılırsa, not defteri artık her gün yerel saatte 9:30’da çalışacak; bu da her sabah Slack’te #bot-updates kanalına bir mesaj gönderileceği anlamına gelir.
Otomatikleştirmek mi, otomatikleştirmemek mi
Tüm görevler, ne kadar sık yaptığınıza, manuel olarak yapmanın ne kadar sürdüğüne ve bunu sizin yerinize yapacak bir Python betiğini yazmanın ne kadar zaman aldığına bağlı olarak otomatikleştirmeye değmez. Bu, bir örnekle netleşir: Diyelim ki her yıl, elle birleştirmeniz 20 dakika süren bir rapor derlemeniz gerekiyor. Bunu sizin için yapacak bir Python betiği yazmanız yarım gün sürerse, otomasyona harcanan zamanı geri kazanmanız çok uzun yıllar alacaktır!
Bu durum şu tabloyla gayet güzel özetlenmiştir:

Otomatikleştirmeye değecek mi? Kaynak
Dolayısıyla, her gün yaptığınız bir görev daha önce 5 dakikanızı alıyorsa, o görevi otomatikleştirmeyi denemek için 6 güne kadar zaman harcayabilirsiniz. Otomasyona bunun altında zaman harcarsanız (5 yıl boyunca sayıldığında) zaman kazanmış olursunuz.
Sonuç
DataLab’den Slack’e mesaj göndermeden önceki ilk kurulum biraz zaman alabilir. Ancak her şey düzgün bir şekilde yapılandırılıp Slack belirteci DataLab’de saklandıktan sonra, mesaj göndermek Python’da iki satır eklemek kadar basit hale gelir! Üstelik işin güzel yanı: Artık neredeyse her türlü Python betiğini otomatikleştirip paydaşlarınızı bulundukları yerde, yani Slack’te haberdar edebilirsiniz.
Aynı sıkıcı işleri tekrar tekrar yapmak için hatırlatıcı kurduğunuz günler geride kalsın; araçlar arasında zıplamadan güçlü, otomatik iş akışlarının zamanı gelsin. Tek ihtiyacınız olan aşk DataLab.
Python becerilerinizi bir üst seviyeye taşıyın: DataCamp'in Orta Düzey Python kursuyla veri görselleştirme ve gelişmiş Python özellikleri konusundaki bilginizi genişletin. Öğrenme yolculuğunuza şimdi devam edin!

Filip, DataCamp’in en popüler Python, SQL ve R kurslarının birçoğunun arkasındaki tutkulu geliştiricidir. Şu anda Filip, DataCamp’in yapay zekâ destekli veri not defteri olan DataLab’in geliştirilmesine liderlik ediyor. Filip, Elektrik Mühendisliği ve Yapay Zekâ alanlarında derecelere sahiptir.

Her işin beraberinde getirdiği sıkıcı, tekrarlayan görevler vardır. İster yardım taleplerindeki ortak temaları raporlaması gereken bir destek temsilcisi, ister performans metriklerini takip etmek zorunda olan bir ekip yöneticisi, ister her şeyin yolunda gittiğinden emin olmak için temel iş süreçlerini kontrol etmesi gereken bir yazılım mühendisi olun, bu işleri defalarca yapmak zorundasınız: aylık, haftalık, günlük, hatta belki saatlik!
Ancak çoğu durumda, bu tekrarlayan işlerin en azından bir kısmını otomatikleştirebilmelisiniz. Python bunun için harika bir araç olabilir: hem (büyük miktarda) veriyle iyi çalışan genel amaçlı bir programlama dilidir hem de otomasyon betikleri yazmayı kolaylaştırır. Performans metriklerini mi raporluyorsunuz? Otomasyon olmadan, ihtiyacınız olan tüm sayıları almak için 4 farklı panoya bakmanız ve bunları patronunuza göndereceğiniz bir mesajda derlemeniz gerekebilir. Otomasyonla, bir Python betiği ihtiyaç duyduğunuz tüm verileri çeker, önemli özet rakamları seçer, derler ve bu mesajı sizin müdahaleniz olmadan gönderir. Bu yalnızca kullanışlı değildir, aynı zamanda hatalara ve unutmalara da daha az açıktır!
Bu eğitimde, bir yatırım portföyünün durumunu raporlamak ve bu portföyün özetini yaygın olarak kullanılan ekip iletişim platformu Slack’e göndermek için Python kodu çalıştırmanın özel bir örneğine bakacağız. Bir Slack uygulamasını yapılandırmak için gerekli tüm adımları, bu Slack uygulamasını kullanarak mesaj gönderen bir Python programını ve Python betiğinizin düzenli aralıklarla çalışmasını sağlayacak bir zamanlama kurmayı ele alacağız. Bu spesifik örnek bir yatırım portföyünü takip etmekle ilgili, ancak elbette bu ‘iş mantığını’ istediğiniz herhangi bir şeyle değiştirebilirsiniz; Slack’e mesaj göndermek için gereken tüm yapılandırma ve kod tamamen aynı kalacaktır.
Bu eğitimde DataLab kullanacağız; çünkü gizli anahtarları ortam değişkenleri olarak güvenle saklama (Slack uygulaması kimlik bilgilerini saklamak için kullanacağımız bir özellik) ve Python kodunuzu birkaç tıklamayla zamanlama gibi yerleşik işlevlere sahiptir. Takip edebilmek için tek ihtiyacınız olan bir Slack hesabı (mesaj göndermek için) ve bir DataCamp hesabı (DataLab’i kullanmak için); her ikisini de ücretsiz olarak oluşturabilirsiniz!
Haydi başlayalım!
1. Bir Slack Uygulaması Yapılandırın
Bir Slack uygulamasını, belirli bir amaç için Slack’in bir uzantısı ya da eklentisi olarak düşünebilirsiniz. Google Docs, Jira, Dropbox, Zoom ve daha nicelerini Slack’e entegre eden Slack uygulamaları vardır; böylece Slack içinde olup bitenlerden haberdar olabilir, aynı zamanda bu uygulamalarda Slack içinden işlem de yapabilirsiniz. Bizim küçük projemiz için de, her Slack uygulamasıyla birlikte gelen bot kullanıcısından yararlanıp Slack’e mesaj gönderebilmek için bir Slack uygulaması oluşturmamız gerekiyor.
Öncelikle, bir Slack hesabınız olduğundan, yönetici erişimine sahip olduğunuz bir Slack çalışma alanının üyesi olduğunuzdan ve bu Slack hesabıyla oturum açtığınızdan emin olun. Değilse, slack.com’a giderek yeni bir hesap ve çalışma alanı oluşturun.
Sonra, Slack uygulamalarınız panosuna, https://api.slack.com/app adresine gidin. Şuna benzer görünecek:
“Create an App”e tıklayın
“From scratch” seçin. Sonraki ekranda, uygulamanız için bir ad belirtin, örn. “Python Messenger” ve bu uygulamayı geliştirmek istediğiniz çalışma alanını belirtin (sizin durumunuzda bu çalışma alanı farklı olacaktır).
Create app’e tıklayın. Şimdi yeni oluşturduğunuz uygulamanın ana sayfasına geldiniz; burada temel bilgilerden bu uygulamada kimlerin değişiklik yapabileceğine ve tüm özelliklere kadar uygulamanın tüm ayarlarını yapılandırabilirsiniz. Gözünüz korkmasın! Sadece birkaç ayarı yapmamız gerekecek.
“OAuth & Permissions” sekmesine gidin, aşağı kaydırarak Scopes kartına gelin ve Bot Token Scopes altında, ‘chat:write’, ‘chat:write.customize’, ‘files:read’, ‘files:write’ kapsamlarını eklemek için “Add an OAuth Scope”a tıklayın (toplamda dört kez “Add an OAuth Scope”a tıklamanız gerekecek).
Bu bot belirteci kapsamları, uygulamanızın bot kullanıcısının Slack çalışma alanınız içinde neler yapabileceğini belirtir. En az ayrıcalık ilkesini izleyerek, bu uygulamaya tüm içeriklere erişim ve akla gelebilecek tüm izinleri vermek yerine, uygulamayı yalnızca (özelleştirilmiş) sohbet mesajları yazmak ve dosya yükleyip indirmekle sınırlandırıyoruz (mesajlarınıza ekler dahil etmek isterseniz faydalıdır).
Şimdi “OAuth Tokens for Your Workspace” bölümüne geri çıkabilir ve “Install to Workspace”a tıklayabilirsiniz:
Önceki adımlarda belirttiğiniz kapsamları özetleyen bir sonraki ekranda Allow’a tıklayın.
Bir “Bot User OAuth Token” oluşturulduğunu göreceksiniz:
Bu Bot User OAuth Token’a daha sonra ihtiyacınız olacak, bu yüzden tarayıcı pencerenizi kapatmayın.
Slack’i açın ve kenar çubuğunuzda “Python Messenger” (ya da her ne ad verdiyseniz) adlı yeni bir uygulamanın belirdiğine dikkat edin:
Son yapılandırma adımı, otomatik mesajları göndermek istediğiniz Slack kanalını yapılandırmaktır. #bot-updates adında yeni bir kanal oluşturun. Kanala, /app yazın ve “Add apps to this channel”ı seçin:
“Python messenger”ın yanında “Add”a tıklayın. “Python Messenger” uygulamasının kanala katıldığını göreceksiniz.
Hepsi bu! Artık Slack kanalınız, oluşturulan Bot User OAuth Token’ı kullanarak “Python Messenger” uygulaması üzerinden mesaj almaya hazır. Çok sayıda adım olmasına rağmen bunun her Slack çalışma alanı için tek seferlik bir kurulum olduğunu unutmayın. Aynı Slack çalışma alanına birden fazla Python programı göndermek isterseniz, bu süreci yeniden yapmanıza gerek yok.
2. İş Mantığını Python ile Yazın
Buraya kadar harika iş çıkardınız! Slack uygulaması yapılandırıldığına göre, sıra eğlenceli kısımda: Python yazmakta. Elimizdeki görevi çözmek için ‘iş mantığımız’a yönelik biraz Python kodu yazarak başlayacağız.
Python kodu yazmayı tazelemek isterseniz, Python’a Giriş kursumuz başlamak için ideal yerdir.
İsterseniz sıfırdan boş bir çalışma kitabı oluşturabilirsiniz; bu, otomatikleştirmek ve Slack ile entegre etmek istediğiniz bir Python programınız zaten varsa kullanışlıdır.
Kavramları öğrenmek için buradaysanız, hayali bir teknoloji hisseleri portföyünün değerini takip eden, her gün (hafta sonları hariç) yeni verilerin geldiği ve bu nedenle günlük raporlama için harika bir aday olan örnek bir çalışma kitabıyla başlayabilirsiniz.