Python zoom üzerinden otomatik yoklama alma programı

merhaba arkadaşlar

zoom üzerinden büyük katılımlı dersler yapıyoruz ama yoklama alınması gerekiyor ve bu işlem çok uzun sürüyor.

zoom programında participants diye bi kısım var ve burda katılımcıların isimleri yazıyor bunu burdan çekip txt isim listesi ile karşılaştırıp eksik ve fazla isimleri bana listelesin istiyorum python ile pek bir geçmişim yok ve nasıl yapacağımı da bilmiyorum yol gösterebilirseniz sevinirim.

Zoom API kullanabilirsiniz.

2 Beğeni

anladığım kadarıyla bu premium hesaplar için bizimki malesef free sürüm.

Zoom hesabınız varsa, https://marketplace.zoom.us üzerinden bir tane uygulama oluşturup API’yi kullanmaya başlayabilirsiniz. Hiç bir kredi kartı bilgisi vermedim, talep eden de olmadı. Dolayısıyla ücretsiz olduğunu düşünüyorum.

Uygulama türlerinden JWT ile bir uygulama oluşturursanız size bir token verir. Böylece bu tokeni kullanarak API sorguları yapabilirsiniz. Aşağıda, JWT ile bir sorguyu nasıl yapacağınızı görtermiş.

import http.client

conn = http.client.HTTPSConnection("api.zoom.us")

headers = {
    'authorization': "Bearer JWT_TOKEN",  # <--------- Burada JWT Tokeniniz olacak
    'content-type': "application/json"
    }

conn.request("GET", "/v2/users?status=active&page_size=30&page_number=1", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))

Bazı API sorguları JWT ile değil, yalnızca OAuth ile kullanılabiliyor. JWT’yi örnek olması açısından burada paylaştım.

hocam cevabınız için çok teşekkür ederim dediğiniz gibi bir api oluşturmayı başardım. fakat katılımcıları nasıl alıcağım konusunda hiçbir fikrim yok malesef.

Bayağı zaman önce ben de bunu yapmak için uğraştım. Canlı derslerde rahat yoklama almak adına birşeyler geliştireyim dedim. İnternette araştırma yaptıktan sonra coderistan’ın belirttiği zoom markette JWT uygulaması oluşturdum.

Market ana sayfada gösterdiğim yerden yeni bir uygulama api’si oluşturabilir ya da oluşturduğunuzu görebilirsiniz.

JWT uygulama API’si daha önce oluşturduğum için bende hazır görünüyor. İşaretli yerden token bilgilerine bakacaksınız.

İşaretli yerden Token bilgilerini görüntüleyeceksiniz

Zoom JWT API tokeni bu, kopyalayın.

Kopyaladığınız tokeni coderistanın belirttiği örnekte uygun yere yapıştırın. Ben çok denedim fakat hep {"code":124,"message":"Invalid access token."} hatası aldım. Çözersek bizim de çok işimize yarar.

import http.client

conn = http.client.HTTPSConnection("api.zoom.us")

headers = {
    'authorization': "TOKENI_YAPISTIR",  # <--------- Burada JWT Tokeniniz olacak
    'content-type': "application/json"
    }

conn.request("GET", "/v2/users?status=active&page_size=30&page_number=1", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))

Tabi hatayı araştırdım, karşılaşanlar çok lakin neticede bir çözüm bulamadım.

3 Beğeni

Yanıtınız için teşekkür ederim hocam

Coderistan hocamın tavsiyesi ile o şekilde JWT uygulaması oluşturup tokeni aldım koddaki uygun yere yapıştırdım ama yoğunluğumdan hata verdi mi vermedi mi tam hatırlamıyorum şuanda bilgisayara ulaşamıyorum yarın ilk fırsat deneyip haber vereceğim eğer bunu yapabilirsek gerçekten işimi çok kolaylaştıracak.

İyi akşamlar diliyorum.

2 Beğeni

Hayırlı sabahlar hocam kodu tekrar denedim ve malesef aynı hatayı aldım.

Hocam ben de çok bilgi sahibi değilim. Bir uygulamadan bilgi almanın en sağlıklı yolunun API kullanmak olduğunu düşündüğüm için size linkini verdim.

Bugün bir iki deneme yaptım, bazı API sorgularını yapabilirken bazılarını yapamadım. Ve malesef bir buluşmadaki kullanıcı listesini elde etmek için ücretli sürüme sahip olmak gerekiyor. Yardımcı olabilecek başka bir önerim de yok malesef.

Bu arada bilgi olsun diye paylaşmak istiyorum. Zoom API kullanmak için geliştirilen bir Python kütüphanesi

Hocam bu hatanın sebebi, tokeni yalnız değil Bearer JWT_TOKEN ile birlikte yazmanız gerekiyor.

headers = {
    'authorization': "Bearer JWT_TOKEN",  # <--------- Burada JWT Tokeniniz olacak
    'content-type': "application/json"
    }
2 Beğeni

Denemeyi yöneticiyken yapınca mı hata veriyor?

1 Beğeni

yöneticiyken de yukardaki hatayı veriyor hocam

ilginiz için teşekkür ederim hocam

şöyle bir şey geldi aklıma zoom da ilk başta bahsettiğim gibi kullanıcıların adını listelediği participants adında bir bölüm var burdan ekran görüntüsü alsak sonra o görsel üzerindeki isimleri pythona okutturup elimizdeki liste ile karşılaştırma gibi bir imkanımız var mı ?

Bence gereksiz olur.

Buradaki modül ile yapan varmış. Kaynak.

OCR kütüphaneleri var ama sağlıklı bir şekilde okuyabilecekleri garanti değil hocam. Pytesseract kütüphanesi, bir görüntü üzerinden yazıları çıkartıyor ama her zaman doğru sonucu vermiyor. Belki de ben beceremedim bilmiyorum.

Kullanabilmek için tesseract-orc uygulamasını indirmeniz gerekiyor.

Şimdi aklıma geldi. Zoom buluşmasına web üzerinden giriş yaparsanız kullanıcılar listesi Javascript yardımıyla alınabilir sanırım. Bu listeyi bir python programına verdiğinizde karşılaştırma yapabilir.

kullanicilar = document.getElementsByClassName("participants-item__display-name");

var result = "";

for(let i=0;i<kullanicilar.length;i++){
	result += kullanicilar[i].innerText + "\n";
}

console.log(result);

Web sayfasında, participants butonuna tıklayıp, yukarıdaki kodu web konsolunda çalıştırırsanız kullanıcıların listesini konsola yazdıracaktır. Bu listeyi alıp Python programınızda bir listeyle karşılaştırırsınız. Evet biliyorum, zahmetli bir iş ama daha iyi bir çözümü olan varsa yazar.

1 Beğeni

hocam zoom buluşmasına web üzerinden girmek derken tarayıcı üzerinden giremiyorum ben nasıl yapabilirim onu

Buradan giriş yapıp, zoom buluşmasının ID’sini yazıyorsunuz. Size masaüstü uygulamada açıp açmayacağınızı soracak.

Siz cancel diyip, aşağıda bulunan Join from your browser linkine tıklayacaksınız.

image

1 Beğeni

çok teşekkür ederim hocam. bu yöntem zahmetli de olsa 80 90 kişiyi tek tek kontrol etmekten daha iyi gibi pythonda karşılaştırma işini de çözersem bi nebze rahatlatır beni

1 Beğeni

Siz kullanıcı isimlerini aldıysanız, Python kısmını da yardımlaşarak çözebiliriz burada.

aklımda şöyle bir şey oluştu şimdilik qt de bir arayüz tasarlıyacağım 2 girdili birisi listem olacak olması gerekenler bunu giricem ikinci kısma ise tarayıcadan aldığım isimleri giricem bir buton vasıtası ile de yoklama al a basınca ilk listede olup 2. listede olmayan isimleri bana listeleyecek qt tasarımını yapacam da kod konusunda 0 'ım :grinning: