fırat soygül

TA3UFS

26 Ocak 2021 Salı

Türkçe kurulum yapılan Linux dağıtımlarının çoğunda, kurulumdan sonra masaüstü ortamının "Masaüstü" adında Türkçe isimlendirilmiş bir klasöre bağlandığını görürsünüz. Bu klasör içinden çalıştırılan ya da bu klasör içindeki bir dosyayı kullanan bazı uygulamalar, içinde çalıştıkları klasörün adının içerdiği Türkçe karakterlerden ötürü, dosya olmasına rağmen "dosya ya da dizin yok" gibi hatalar verebiliyor. Buna benzer sorunları gidermenin geçici ve kalıcı iki basit yolu var.

    • Geçici: Kullanılan uygulama ve proje dosyaları, Türkçe karakter içermeyen bir alana taşınır ve orada çalıştırılabilir.
    • Kalıcı: Sistemin bağlı olduğu kullanıcı dizinleri değiştirilerek, dizin yolu içinde Türkçe karakter bulunmayan başka bir klasör, masaüstü dizinine bağlanır.

      İkinci yöntem sistem genelinde uygulandığı için, bu soruna daha kalıcı bir çözüm oluşturur.

      Kullanıcı dizinlerinin değiştirilmesi

      Linux işletim sisteminde, genel amaçlı kullanılan bazı dizinler (Masaüstü, Belgeler, Müzik, Videolar vb.), sistem açılışında bağımsız değişkenlere tanımlanır. Bu sayede, kullanıcıların genel dizinlerine ihtiyaç duyan uygulamalar bu değişkenlere bakarak ilgili klasörü bulur. İnternet tarayıcınızın indirdiği dosyaları İndirilenler klasörüne kaydetmesi veya ofis uygulamalarının belgelerinizi Belgeler klasörüne kaydetmesi gibi. Bu tanımlanmış dizinler düzenlenerek, sistem genelinde uygulamalar farklı bir dizine yönlendirilebilir. Yani sistemin genel masaüstü ortamını, Masaüstü klasörüne değil de, başka bir klasöre yönlendirebilirsek, bu sorundan kurtulmuş oluruz.

      Bu işlemi iki farklı yolla gerçekleştirebilirsiniz.

      1. Kullanıcı dizinleri dosyasını düzenleyerek.
      2. Yardımcı komut satırı uygulamasını (xdg-user-dirs-update) kullanarak (bu uygulama her masaüstü ortamında kurulu olmayabilir).

      1. Kullanıcı dizinleri dosyasının düzenlenmesi

      /home/$USER/.config/ dizinindeki user-dirs.dirs dosyasını, herhangi bir metin editörü ile açın. Eğer sistem diliniz Türkçe'yse, aşağıdaki gibi Türkçe klasör isimleri görebilirsiniz.

      XDG_DESKTOP_DIR="$HOME/Masaüstü"
      XDG_DOWNLOAD_DIR="$HOME/İndirilenler"
      XDG_TEMPLATES_DIR="$HOME/Şablonlar"
      XDG_PUBLICSHARE_DIR="$HOME/Genel"
      XDG_DOCUMENTS_DIR="$HOME/Belgeler"
      XDG_MUSIC_DIR="$HOME/Müzik"
      XDG_PICTURES_DIR="$HOME/Resimler"
      XDG_VIDEOS_DIR="$HOME/Videolar"
      

      Dosyada tanımlanmış klasör isimlerini, kendi kullanmak istediğiniz klasörlerin adlarıyla değiştirin. Örneğin Masaüstü klasörünü İngilizce kurulumda olduğu gibi Desktop olarak değiştirelim.

      XDG_DESKTOP_DIR="$HOME/Desktop"

      Buraya yazdığınız klasör kullanıcı ana dizininde ($HOME) gösterildiği için, aynı yerde aynı klasörü oluşturmanız gerekiyor. Veya nereye tanımladıysanız.

      Dosyayı kaydedin ve sistemi yeniden başlatın. Ya da terminalden aşağıdaki komutu verdiğinizde uygulamalar yeni masaüstü klasörü olarak Desktop klasörünü görecektir.

      $ xdg-user-dirs-update

      Üstteki komutla dosya yöneticisi, medya oynatıcı, internet tarayıcı gibi uygulamalar değişikliği anında görecektir. Ancak masaüstü ortamları (XFCE, Gnome vb.) bu durumu ekrana hemen yansıtmaz. Ayrıca xdg-user-dirs-update uygulaması sisteminizde yüklü olmayabilir. Bu durumda sisteminizi yeniden başlatmalısınız. Artık eski masaüstü klasörünüzdeki dosyaları bu klasöre kopyaladığınızda, simgeler de ekranda görünecektir.

      2. Komut satırı uygulamasının kullanılması

      Yukarıdaki yönteme alternatif olarak, xdg-user-dirs-update uygulamasıyla da kullanıcı dizinlerini değiştirebilirsiniz. Uygulamaya --set parametresiyle birlikte değiştirmek istediğiniz dizini ve tam dizin yolunu belirtmelisiniz.

      xdg-user-dirs-update --set <DIR> <path>
      • <DIR> Kullanıcı dizinini temsil eden bağımsız değişkenin adı. Değiştirmek istediğiniz dizinin, listedeki değişken adını kullanabilirsiniz.
        DESKTOP
        DOWNLOAD
        TEMPLATES
        PUBLICSHARE
        DOCUMENTS
        MUSIC
        PICTURES
        VIDEOS
      • <path> Kullanıcı dizinine bağlayacağınız klasörün tam dizin yolu.

      Örnek olarak masaüstü dizinimizi, kullanıcı ana dizinindeki Desktop klasörüne bağlayalım.

      xdg-user-dirs-update --set DESKTOP /home/$USER/Desktop

      Artık uygulamalar yeni masaüstü klasörü olarak Desktop klasörünü görecektir. Masaüstü ortamınızda da etkin olabilmesi için sistemi yeniden başlatmalısınız.

      Varsayılan dizinleri yeniden oluşturma

      xdg-user-dirs-update uygulamasını kullanarak, dizinleri kurulumla beraber gelen varsayılanlara döndürebilir ve ilgili klasörleri de yeniden oluşturabilirsiniz. Bu işlemin, dil tercihinize bağlı olarak farklı seçenekleri var.

      Sistemin kullandığı dilde varsayılan dizinler oluşturma

      Sistemin kullandığı dilde varsayılan dizin ve klasörlere dönmek için bu komutu kullanabilirsiniz. Bu komut sonrasında eğer sisteminiz Türkçe diline ayarlıysa, kullanıcı kök dizininde Türkçe klasörler kendiliğinden oluşturularak dizinler bu klasörlere bağlanır. /home/$USER/.config/user-dirs.dirs dosyası mevcut değilse yenisi oluşturulur. İngilizce klasörler varsa silinmez.

      xdg-user-dirs-update --force

      İngilizce varsayılan dizinler oluşturma

      İngilizce varsayılan dizin ve klasörlere dönmek için aşağıdaki komutu kullanabilirsiniz. Bu komut sonrasında sisteminiz Türkçe dahi olsa, kullanıcı kök dizininde İngilizce klasörler kendiliğinden oluşturularak dizinler bu klasörlere bağlanır. /home/$USER/.config/user-dirs.dirs dosyası mevcut değilse yenisi oluşturulur. Türkçe klasörler varsa silinmez.

      LC_ALL=C xdg-user-dirs-update --force

      Mevcut duruma göre varsayılan dizinler oluşturma

      Alttaki komut mevcut durumu gözeterek işlem yapar.

      • /home/$USER/.config/user-dirs.dirs dosyası mevcutsa ve dosyada tanımlanan klasörler de mevcutsa doğrudan bağlantı kurulur. Klasörler mevcut değilse, klasörleri ve dizinleri oluşturmaz, dizini boş bırakır.
      • /home/$USER/.config/user-dirs.dirs dosyası mevcut değilse, Türkçe ya da İngilizce hangi klasör varsa dizini ona bağlar. Türkçe ve İngilizce klasörlerin ikisi de varsa dizinleri İngilizce klasörlere bağlar, Türkçe isimlileri silmez. Hiç klasör yoksa Türkçe isimli klasörleri oluşturur ve dizinleri bu klasörlere bağlar.
      xdg-user-dirs-update

      Ayrıca /home/$USER/.config/user-dirs.dirs dosyası mevcut değilken sistemi yeniden başlattığınızda da bu son komut çalışır ve aynı sonuçlar gerçekleşir.

      Kaynaklar

      5 Ocak 2021 Salı



      Ubuntu 20.04 ile beraber Python 3 sürümüne geçildi ve Python 2'ye ait paketler kaldırıldı. Bu nedenle Python 2 sürümü ile geliştirilen Chirp'in daily sürümü Ubuntu 20.04'e doğrudan kurulamıyor. Python 2 kurulumu yapmanız ya da Flatpak paketi ile yüklemeniz gerekiyor. Chirp'in Python 3 sürümü ise geliştirilme aşamasında ve henüz Python 2 sürümünde desteklenen tüm cihazları desteklemiyor. Ancak yine de denemek isterseniz, Ubuntu 20.04 üzerinde aşağıda yazdığım şekilde çalıştırabilirsiniz. Python ile geliştirilen uygulamalar kaynak kodundan doğrudan çalıştırabiliyor. Chirp de açık kaynak kodlu bir uygulama olduğu için kaynak kodunu edinebiliyor ve çalıştırabiliyoruz.

      Chirp kaynak kodu Mercurial kaynak kontrol yönetim aracı ile yönetiliyor. Aslında Chirp'i kaynak kodundan çalıştırabilmek için bu aracı kurmak zorunda değilsiniz. Kodu sıkıştırılmış dosya olarak da indirebilirsiniz. Ancak bu araç sayesinde kaynak kodunu kendi bilgisayarınıza klonyabilir ve sonrasında tek komutla güncelleyebilirsiniz. Mercurial, Ubuntu paket deposundan kolayca kurulabilir. Bunun yanında bazı bağımlılıkları da kurmak gerekli.

      Chirp Python 3 Bağımlılıkları ve Mercurial Kurulumu

      Ubuntu 20.04, Python 3 entegre edilmiş şekilde geliyor fakat Chirp'in ihtiyaç duyduğu birkaç bağımlılık daha var. Bu paketlerin kurulumu için aşağıdaki komutu kullanabilirsiniz.

      $ sudo apt install -y python3-gi python3-six python3-serial gir1.2-gtk-3.0

      Chirp geliştiricileri, kaynak kodu yönetim aracı olarak Mercurial aracını kullanıyor. Kaynak kodunu indirmek ve güncellemek için Mercurial aracını da kuralım.

      $ sudo apt install -y mercurial

      Chirp Kaynak Kodunu Klonlama

      Chirp kaynak kodu http://d-rats.com/hg/chirp.hg adresinde barındırılıyor. Mercurial aracını kurduysanız, aşağıdaki komutu kullanarak Chirp Python 3 dalını bilgisayarınıza klonlayabilirsiniz.

      $ hg clone http://d-rats.com/hg/chirp.hg#py3 chirp-py3

      Bu komut, çalıştırıldığı dizin içinde chirp-py3 adında bir klasör oluşturarak kaynak kodunu bu klasörün içine yükleyecektir. Aşağıdaki komutları sırasıyla uyguladığımızda ise klasörün içine girerek, çalışma dizinimizi, indirdiğimiz dalın son revizyonuyla güncellemiş oluyoruz.

      $ cd chirp-py3
      $ hg update

      Çalıştırma

      Kaynak kodu indirdiğiniz klasörün içindeyken aşağıdaki komutu çalıştırın.

      15 Ekim 2020 Perşembe


      EchoLink web sitesinde uygulamayı indirmek istediğinizde, yalnızca Windows sürümünün bulunduğunu göreceksiniz. Linux üzerinde ise EchoLink istasyonlarıyla bağlantı kurabilmek için, Qtel uygulamasını kullanabilirsiniz.

      7 Temmuz 2020 Salı

      Amatör bandı planlarını anlama çabasındayken, 144-146 Mhz. ve 430-440 Mhz. aralıkları için bilgi grafikleri ve frekans tabloları oluşturdum.

      Grafikleri hazırlarken ilk olarak LibreOffice kullandım fakat daha sonra draw.io daha pratik gelmeye başladı. Çevrim içi düzenlemeye de olanak tanıdığı için, ek bir uygulama yüklemeye gerek kalmadan herkes tarafından rahatça düzenlenebiliyor. Biraz deneme yanılmayla kısa sürede öğrenilebilir.

      18 Şubat 2020 Salı

      Aşağıda anlatılan kurulumlar, Linux tabanlı işletim sistemleri için geçerlidir. Ancak Windows üzerinde de aynı uygulamaları çalıştırabilir ve analizörü kullanabilirsiniz.

      Dijital elektronik sinyallerinin, dijital protokollerin (SPI, I2C, Serial vb.) iletişimini görüntülemek, ölçmek, analiz etmek için mantık analizörü olarak adlandırılan donanımlar kullanılır. Aynı anda birden fazla kanaldan sinyal yakalayabildikleri için, çoklu bağlantı kullanan protokoller bu donanımla eşzamanlı bir şekilde ölçülebilir.  Farklı sinyaller arasındaki zamanlama ilişkileri incelenebilir, bunlar kayıt altına alınarak üzerinde inceleme yapılabilir. Hata ayıklamada kullanılabileceği gibi, tersine mühendislik işlemlerinde de sıkça kullanılır.

      Örneğin aşağıda, gerçek zaman saati entegresi olan DS1307 dökümanında yer alan, entegrenin mikrodenetleyici ile arasında gerçekleşmesi gereken I2C protokol iletişimi teorik olarak gösterilmiş.

      Aşağıda ise aynı entegrenin bir mikrodenetleyici ile iletişim halindeyken, mantık analizörü ile yakalanmış sinyallerini görebilirsiniz.

      7 Ocak 2020 Salı

      Tarayıcınız bir web sitesi ile HTTP veya HTTPS bağlantısı kurmadan önce, bağlantının yapılacağı IP adresini bulmak için bir DNS sorgusu yapar (IP adresi yerine bir ana bilgisayar adı kullanarak yaptığınız bağlantılarda da aynı şey geçerlidir). DNS sorguları ön tanımlı olarak şifrelenmez, düz metin olarak gönderilir. Bunun anlamı, HTTPS kullanan bir web sitesine bağlandığınızda, konuşmanız şifreli olsa bile bağlantı üzerinde bulunan herhangi bir platformun (modem, router, ISS vb.), hangi web sitesini aradığınızı görebilmesidir. Aşağıda, bloğuma girmek için istek gönderen bir internet tarayıcısından yapılan DNS sorgusunu görebilirsiniz.

      Wireshark uygulaması ile yakalanan, şifrelenmemiş DNS sorgusu içeriği.

      DNS sorgusu incelendiğinde, girilmek istenen sitenin web adresi düz metin olarak kolayca görülebilir. Bu durum bizi DNS Spoofing, trafik takibi ve kayıt altına alma, reklam amaçlı kullanım gibi isteğimiz dışında gerçekleşebilecek problemlere sürükleyebilir. Ücretsiz Wi-Fi bağlantı noktası sunan bir kişi veya işletmenin, reklam verenlere satmak için DNS sorgularınızı kaydettiğini düşünün.

      DNS over TLS (DoT), bunun önlemini almak için geliştirilmiş yöntemlerden biridir. Bu yöntemi kullanarak DNS trafiğimizi şifreleyebiliyoruz. Bazı tarayıcılarla birlikte gömülü halde zaten geliyor (aktifleştirmeniz gerekebilir). Ancak sadece tarayıcıların değil, sistem genelinde DNS sorgusu gönderen tüm uygulamaların sorgularını şifrelemek istiyorsanız, aşağıda anlatacağım uygulamalar ile sistem genelinde kullanılır hale getirebilirsiniz.

      Not: Aşağıda anlatılan yöntemler, Debian ve Ubuntu tabanlı Linux dağıtımları için geçerlidir.
      Ağ işlemleri yürütürken, ağ istatistiklerine sıkça ihtiyaç duyacaksınız. Bu ihtiyacı karşılamak için sisteminizde bazı araçların kurulu olması gerekiyor. Aşağıdaki işlemleri yürütürken de, ağ istatistiklerini analiz etmeye yarayan netstat adında bir komut satırı yardımcı programını kullandım. Bunu kurmak ve kullanmak zorunda değilsiniz, bu kısımları atlasanız da olur. Kurmak isteyenler ise netstat aracını içinde barındıran net-tools paketini aşağıdaki komutla kurabilirler.
      sudo apt-get install net-tools

      DNS over TLS (DoT)

      DNS sorgularının, HTTP trafiğini şifreleyen TLS (Transport Layer Security) teknolojisi ile şifrelenmiş olarak gönderildiği bir yöntemdir. Böylece üçüncü tarafların DNS sorgularınızı görmesini, takibini ve yönlendirmesini önleyerek kullanıcı gizliliğini ve güvenliğini artırır.

      Bu yöntemi Ubuntu dağıtımlarının güncel sürümlerinde, sistemde ön tanımlı olarak gelen systemd-resolved servisinin konfigüre edilmesiyle kullanılabileceğiniz söyleniyor. Ancak yaptığım deneme ve araştırmalarda, ne kadar uğraşsam da ne yazık ki kararlı çalışmadığını, sorguların bazen şifrelenmediğini gördüm. Bu nedenle systemd-resolved konfigürasyonunu burada anlatmıyorum.

      İkinci seçenek olarak, Stubby uygulamasını kurarak bu yöntemi Linux işletim sistemi genelinde kullanabilirsiniz.

      Stubby

      Stubby açık kaynaklı, TLS yöntemini kullanarak DNS sorgularında gizlilik sağlayan bir DNS çözümleyicidir. Uygulamalardan gelen DNS sorgularını dinler ve aldığı istekleri şifreleyerek DNS'e gönderir. Ön tanımlı olarak yalnızca şifreli DNS sorguları gönderir. Ayrıca, kullanılan DNS adreslerini daha ayrıntılı bir şekilde yönetmenizi sağlayan konfigürasyon alt yapısına da sahiptir.

      Bir uygulama sorgu yapacağı DNS adresini, Linux'ta DNS adresi elde etme kısmında anlatıldığı şekilde bulur. Bu adreste bir yerel DNS, uzak DNS, geçit cihazı veya bir çözümleyici uygulaması olabilir ve DNS sorguları için ön tanımlı olarak ayrılmış 53 nolu portu dinlerler. Bu portu dinleyen bir DNS, sorguyu doğrudan değerlendirip cevap döndürebileceği gibi, geçit cihazları ya da çözümleyici uygulamaları ise programlandıkları üzere sorguyu başka bir adrese yönlendirebilir. Ubuntu sistemlerde bulunan ön tanımlı çözümleyici de (systemd-resolved) işte bu adresi dinler ve gelen sorguları, kendi konfigürasyon dosyalarında tanımlanmış diğer DNS adreslerine (ya da başka bir çözümleyiciye) yönlendirir. Ancak şifrelemez, olduğu gibi açık olarak gönderir. Stubby çözümleyicisi ise systemd-resolved çözümleyicisi ile uzak DNS arasına konumlandırılır. systemd-resolved çözümleyicisinin, sorguları uzak DNS yerine Stubby'e göndermesi sağlanır. Stubby gelen açık sorguları şifreler ve kendi konfigürasyonundaki güvenli DNS adreslerine 853 nolu port üzerinden gönderir. Aşağıdaki şemada bu yapıyı anlatmaya çalıştım.

      Stubby Kurulumu

      Stubby, Debian ve Ubuntu depolarında zaten bulunuyor. Uygulamayı kurmak için aşağıdaki komutu kullanabilirsiniz.

      25 Ağustos 2019 Pazar

      Kullandığım bir "Usb Tester" cihazında, ölçülen akım değerinin ekranda sürekli 0.00 A olarak gösterilmesi gibi bir sıkıntı yaşadım. Hiçbir araştırma yapmadan doğruca, devre kartı üzerindeki ilgili elemanları kontrol ettim fakat bir sorun göremedim. Yaptığım araştırma sonunda bu cihazların bir kalibrasyonu olduğunu ve bu ayar bozulduğunda göstergedeki verilerin, bende olduğu gibi yanlış gösterilebileceğini öğrendim.

      8 Ağustos 2019 Perşembe


      Proje geliştirirken, ekip içindeki iletişimi kolaylaştıran platformlardan biri de Slack. Slack üzerinde oluşturduğumuz bir proje alanı sayesinde, ekip üyeleriyle iletişim kurabiliyor ve gerekli etkileşimi sağlayabiliyoruz. Slack platformunu kullanabileceğiniz uygulamalar zaten kendileri tarafından sağlanmış durumda. Mobil tarafında Android ve IOS, masaüstü tarafında ise Linux, Windows ve Mac uygulamalarını sitelerinden indirip kullanabiliyorsunuz. Eğer gömülü sistem alanında uğraşıyorsanız, bu uygulamaların kurulamadığı ortamlardan da Slack platformuna ulaşmak isteyebilirsiniz. Ya da IOT donanımlarınızdaki hareketlerin takibi için Slack platformunu kullanmak isteyebilirsiniz. Örneğin iş yerinizdeki sıcaklık sensörlerinin bağlı olduğu bir IOT donanımdan, belli bir ısının alt ve üst seviyelerinde size mesaj göndermesini isteyebilirsiniz. İşte bu gibi durumlarda, Linux çekirdeği üzerinde çalışan kabuğu programlayıp, belirli görevlerde Slack projenizdeki bir kanala ya da kullanıcıya mesaj olarak bilgi göndermesini sağlayabilirsiniz.

      7 Ağustos 2019 Çarşamba

      Diyelim ki JSON formatındaki bir veriyi, verilen bağlantıya HTTP protokolü üzerinden POST yöntemiyle göndermemiz gerekiyor. Bu işlemi yapabileceğimiz HTTPie, HTTP Prompt, Wget gibi çeşitli araçlar mevcut. Biz bu işlemi cURL aracıyla, Linux komut satırı üzerinden yapalım. 

      cURL, URL söz dizimini kullanarak HTTP ve çeşitli protokollerde istekler yapmak için kullanılan bir komut satırı yardımcı programıdır. Protokoller üzerinden veri aktarımı sağlamak (dosya almak ya da göndermek vb.) için kullanılır. Komut satırı aracıyla birlikte, libcurl adında bir URL transfer kütüphanesi sunar. Bu araç sayesinde bir sunucuya (ya da sunucudan), komut satırını kullanarak HTTPS istekleri yapabilir, elimizdeki verileri aktarabilir ve dönen cevapları alabiliriz.

      6 Ağustos 2019 Salı

      Göndereceğimiz mesajların, bir JSON yapısı içinde, anahtar / değer çiftleri şeklinde tutulması gerekiyor. Mesaj metnini içeren anahtarı text olarak belirtiyoruz. Aşağıda sadece mesaj metnini içeren basit bir JSON yapısını görebilirsiniz.

      { "text": "Bu bir deneme mesajıdır.\nBu cümle ise ikinci satıra yazılır." }
      Not: \n karakterinden sonra yazılan mesaj metni, bir alt satırdan başlatılarak yazdırılır. 
      Mesajımızı bu haliyle gönderdiğimizde mesaj iletisi gönderilir ancak gönderen ismi ve icon belirtmediğimiz için, bu bilgiler bir önceki konuda Webhook parametrelerini oluşturduğumuz sırada girdiğimiz ön tanımlı değerlerden alınır. Bu yapıya farklı parametreler ekleyerek, ön tanımlı değerler yerine bizim gönderdiğimiz değerlerin görünmesini sağlayabiliriz.

      Gönderen İsmi

      Mesajımızın gönderen adını değiştirmek için username anahtarını kullanıyoruz. Bu anahtarı ve içerdiği değeri JSON yapımıza dahil edelim.
      {
         "username": "firat",
         "text": "Bu bir deneme mesajıdır.\nBu cümle ise ikinci satıra yazılır."
      }

      Kanal İsmi / Alıcı Adı

      Standart olarak bir kanal belirlemiştik. Mesajımızı farklı bir kanala göndermek istediğimizde channel anahtarını kullanıyoruz. Kanal ismini değer olarak girerken ismin başına # (diyez) karakterini girmemiz gerekiyor. Mesajımızı bir kanal yerine, projemize dahil edilmiş bir kullanıcıya özel mesaj olarak göndermek için, kullanıcı adının başına @ (kuyruklu a) karakterini koyabiliriz. (Örn. "channel": "@firat")
      {
         "username": "firat",
         "channel": "#tasarım",
         "text": "Bu bir deneme mesajıdır.\nBu cümle ise ikinci satıra yazılır."
      }
      Uyarı: Webhook entegrasyonunda belirlediğimiz ön tanımlı kanal ya da kullanıcı adını, channel anahtarına değer olarak yazdığınızda, mesajlarınız @slackbot kullanıcısına gönderiliyor. Bu durumu aşmak için, ön tanımlı kanal / kişiye mesaj gönderirken, channel anahtarını JSON yapısına eklemeyebilir veya değerini boş bırakabilirsiniz (Örn. "channel": ""). Bu şekilde gönderilen mesajlar ön tanımlı kanala / kişiye gönderilir.

      Mesaj İkonu veya Görüntüsü

      Her gönderilen mesajın solunda kullanıcıya ait bir görüntü veya ikon bulunur. Bu ikonu Slack’de tanımlı ikonlar üzerinden seçmek için icon_emoji, harici bir kaynaktaki görüntüyü seçmek için de icon_url anahtarları kullanılır (Örn. "icon_url": "https://slack.com/img/icons/app-57.png").
      {
         "username": "firat",
         "channel": "#tasarım",
         "icon_emoji": ":ghost:",
         "text": "Bu bir deneme mesajıdır.\nBu cümle ise ikinci satıra yazılır."
      }

      Bağlantı (Link) Oluşturma

      Mesaj metni içinde bir bağlantıya köprü oluşturabilmek için < > karakterleri içine bağlantıyı eklememiz gerekiyor. Mesaj içinde bağlantı yerine köprülenmiş bir metin göstermek istiyorsak, bağlantının hemen bitimine | (pipe) karakterini ekleyip devamında köprü oluşturacağımız metnimizi ekliyoruz.
      {
         "username": "firat",
         "channel": "#tasarım",
         "icon_emoji": ":ghost:",
         "text": "Bu bir deneme mesajıdır.\nBu cümle ise ikinci satıra yazılır. <https://example.com/|Buraya tıklayın.>">
      }
      Şu ana kadar oluşturduğumuz mesaj yapısının, Slack arayüzündeki görüntüsünü aşağıdan görebilirsiniz.


      Görüldüğü gibi < > karakterlerini mesaj metnimizin içine yazdık. Ancak görüntülenen mesajda bu karakterler gizlendi. Bu karakterleri birer operatör olarak değil de, mesaj metnimizin bir parçası olarak görüntülemek istediğimizde, URL kodlama yöntemiyle kodlanmış halini göndermemiz gerekiyor. Slack mesajlarında bu işlemi yalnızca 3 karakter için yapmamız gerektiği belirtilmiş.

      • & Ve anlamına gelen bu karakter yerine &amp;
      • < Küçüktür karakteri yerine &lt;
      • > Büyüktür karakteri yerine &gt;

      Mesaj içeriğinde farklı görünümler oluşturmak için bu sayfaya göz atabilirsiniz.
      Bilgi: Oluşturduğunuz görünümleri bu sayfada test edebilirsiniz.
      Son oluşturduğumuz haliyle bu yapıyı bir POST isteğinin gövdesine ekleyerek gönderebiliriz. İkinci bir yöntem ise bu JSON yapısını POST istek gövdesinde payload parametresine ekleyerek göndermek. Payload parametresine eklenen verinin son hali aşağıdaki gibi olmalı.
      payload = {
         "username": "firat",
         "channel": "#tasarım",
         "icon_emoji": ":ghost:",
         "text": "Bu bir deneme mesajıdır.\nBu cümle ise ikinci satıra yazılır. <https://example.com/|Buraya tıklayın.>"
      }
      POST isteğini, cURL aracı ile gönderebilirsiniz. Bazı parametreler girmeniz gerekecek. İlgili yazı için burayı tıklayın.