Roblox oyunun web API'si ile kullanıcı arama yaptırma
Merhaba arkadaşlar. Yapmam gereken ufak bi proje var fakat kaynak bulamadığım ya da beceremediğim için yapamıyorum.
Roblox oyunun web sitesi için geliştirilen API kullanılarak(yada başka şekilde) basit bir oyuna kayıtlı üyeleri arama alanı yapmam lazım. Aşağıdaki resimlerde gösterdiğim şekilde "ADD PAYOUT RECIPIENTS" butonuna tıklayınca acılan formdan aradığın kullanıcı adı aramasında kayıtlı bütün üyelerin cekilmesini istiyorum.
Dediğim alan burası.
Bi diğer önemli olay şu oyunda gruplar var. Mesela "Dag Grubu" diyelim bunun zaten bir ID'si falan vardır diye düşünüyorum. Aramada bu gruba ait üyelin yanında "Member" yazacak. O gruba ait olduğunu belirtmek için. Sadece bu gruba ait üyeler seçilebilecek.
Mesela / "AHMET, ADNAN(Members), ALI(Members)" / listesi çıktı. A yazınca bunlar çıktı arama da. ALI ile ADNAN bu sectiğimiz gruba dahil olsun. AHMET dahil değil. Ahmeti seçince gruptan değil diye hata verecek. Ali ve Adnan seçebilecek sadece.
Başarıyla gruba ait olanu seçtik kısaca. Bundan sonra görselde sağda paying out alanı var orada fake bi bakiye görünecek. Mesela / 300 bakiye vardı ve 20 yazdık inputa. 280 düşecek ve başarılı uyarısı verecek / temelde. Bakiyenin düşmesi falan tamamen fake. Görünürde olsa yeterli.
Sanki iş teklifi yazdığımın farkındayım ama API ile ilgili gerçekten bir şey bulamadım. Javascript'te o kadar iyi olmadığım için başa çıkamadım.
Bu arada Bu tasarım / elimde HTML olarak hazır şekilde var. / Yardımcı olabilecek bir arkadaş var mı acaba? Vakti olan bu tip API ler ile içli dışlı olan birisi. En azından yönlendirecek birisi olursa çok sevinirim.
Buralarda bekliyorum bir iyilik severin yazması için. Şimdiden / çok teşekkürler :) <3 /
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
Roblox oyununu ve API'ını hiç bilmediğim için kısa bir araştırdım.
Google'da "roblox api" yazdığım zaman karşıma https://api.roblox.com/docs çıktı. Burada API'ın hangi endpoint'lerine nasıl istek atılacağı açıklanmış.
1) https://api.roblox.com/users/get-by-username?username=thandito şeklinde GET isteği attım ve sonuçta thandito adlı kullanıcının verileri geldi. Yani kullanıcı adından kullanıcı id'sini almak mümkün.
2) https://api.roblox.com/users/1 şeklinde istek atınca da id'si 1 olan kullanıcının verileri geldi. Yani id'den kullanıcı adı almak da mümkün.
Sizin işinize yarayacak olan endpoint 1.si olabilir. Ama bu endpoint, kullanıcı adının tamamının doğru şekilde (büyük-küçük harf duyarlı değil) yazılmasını istiyor. Yani thandito yazdığınızda Thanditoy, thanditop2k11, thanditoni gibi diğer kullanıcı adlarını bu yolla alamıyorsunuz.
Bu durumda tüm kullanıcıları kendi sisteminize çekmeyi denemeyi düşünebilirsiniz. Yani id ile arama yapıp 1'den x'e kadar kaç kullanıcı varsa hepsini kendi sisteminize ekleyip, aramaları kendi sisteminiz içinde kendi algoritmanıza göre yapmayı düşünebilirsiniz.
Az sayıda kullanıcı olsa bu uygun bir çözüm olabilirdi ama acaba kaç kullanıcı var diye bi'deneme yaptım ve yüksek bir Id değeri denedim.
https://api.roblox.com/users/3629318000 şeklinde istek attım ve sonuç döndü. Yani sistemlerinde şu an kayıtlı 3.629.318.000'den fazla kullanıcı kaydı var ve sürekli artmaya devam ediyor.
Bir script yapıp şu ana kadar kaydolmuş tüm kullanıcıların verilerini almak amacıyla tek tek her kullanıcı için istek atmak isterseniz ve bu işlemi çok hızlı yaparsanız sistem sizi saldırı yaptığınızı düşünerek engelleyecektir. 1 saniyede 1 istek atarsanız da işleminiz 40 günden uzun sürer.
Yani kullanıcı adı üzerinden arama yapıp kullanıcı adının tamamının doğru girilmesini sağlamalısınız.
Yine de bu API'ı kullanmanız geçici bir çözüm olacak gibi görünüyor. Çünkü şöyle bir uyarı koymuşlar:
Merhaba geliştiriciler. Platformumuzun güvenilirliğini artırmak ve ölçeklenebilirliği geliştirmek için ApiProxy'yi kullanımdan kaldırıyoruz. Daha fazla bilgi için https://devforum.roblox.com/t/action-needed-sunsetting-apirobloxcom/1796897 adresine bakın.
Bahsettiği linkte de demiş ki:
15 Temmuz 2022'den itibaren, api.roblox.com'dan API endpoint'leri kaldırmaya başlayacağız. Tüm endpoint'lerin yıl sonuna kadar kaldırılması planlanıyor.
Bu değişiklik yalnızca üçüncü taraf sunuculardan, tarayıcı eklentilerinden veya araçlardan api.roblox.com'a istekte bulunan geliştiricileri etkiler.
Sadece Roblox oyun motorunun içinde geliştirme yapıyorsanız herhangi bir değişiklik yapmanıza gerek yok.
Lütfen api.roblox.com'a dayanan tüm araçları, tarayıcı eklentilerini veya üçüncü taraf sitelerini aşağıda listelenen daha yeni uç noktalara güncelleyin.
Buralarda dolaşırken bir API daha gördüm: https://users.roblox.com/docs
Şöyle bir istek attım: https://users.roblox.com/v1/users/search?keyword=thandito&limit=10
10 kullanıcıyla sınırlı olmak üzere "thandito" kelimesiyle arama yapıp birkaç kullanıcıyı döndürdü. Bu tam aradığınız şey.
Ama sanırım bunun da kullanımını kaldıracaklar. Zaman ayırıp detaylı okumak lazım. Şu an benim gibi herhangi birine veri sunan bu API'ların kullanımını sonlandırıp sadece kayıtlı geliştiriciler için bi'şeyler sunmayı mı planlıyorlar bilemedim.
Muhtemelen herkesin istek atmasını önleyerek hem saldırıların bir kısmının önüne geçmek hem de sunucularını biraz daha rahatlatmak istiyorlar.
Demem o ki, buraları kurcalayıp işinize yarar bi'şeyler bulabilirsiniz.
Deneyip yapamadığınız bi'şey varsa doğrudan kodlarınız üzerinden yorum yapabiliriz.