Neler yeni

Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

  • Forumdan daha fazla yararlanmak için, profilinizi telefon numaranız 📱 ile doğrulayın ve daha ayrıcalıklı olun 😉
    Daha fazla bilgi!

Güncel Steam Api ile veri çekip bunu rest api ile update etmek

Bu sorun halen çözme ulaştırılamamıştır!

Lim10Ata

xFanatik
Aktif Lisans
SMS onaylı
Kullanıcı
Katılım
7 Ocak 2017
Mesajlar
446
Çözümler
23
Destek istenen forum
https://xenforo.gen.tr
Merhabalar, sorumu özelden sormak yerine neredeyse kaynak sıfır olması sebebiyle buradan soruyorumki ileride bu tarz bir çalışma yapmak isteyen arkadaşlarda yararlansın.

Sorum şu: Steam api ile kullanıcının bilgilerini çektikten sonra örneğin "Steam Level" verisini çekip ilgili kullanıcının "Custom Field" alanına rest apiyle nasıl yerleştirebiliriz?

REST API endpoints (2.2) sayfasını incelediğim zaman bu işlemin mümkün olduğunu düşünüyorum. XF REST Api ile daha önce "chatgpt ile otomatik içerik yazımı, konulara yorum atma" gibi basit işlemleri Python araclığıyla yapmıştım.

Şuan nasıl bir yol izleyeceğim konusunda açıkçası kafam karıştı yol gösterebilir misiniz? Fikir verebilir misiniz?

@eTiKeT™ netr0n netr0n @LaDezs @Ugur
 
Merhaba, Lim10Ata Lim10Ata

Şimdi burası REST API endpoints (2.2) xenforo tarafını ilgilendiren bir durum steam ile ilgili bir durum değil. Yani ben xenforo apisini kullanarak kendi yazılımıma xenforo yazılımı tarafından gelen verileri işleyebilirim. Steam tarafında ise tamamen steam apisine bağlı hareket edebilirim. Burada yapman gereken XF tarafına, steam apisini nasıl çekeceğin. Yani bizim REST API endpoints (2.2) ile herhangi bir işimiz yok.

Gelelim sorunun kendisine burada algoritman çok önemli yani neyi ne için ne amaçla yapacağını en iyi programı yazacak olan kişi bilir. Ama XF tarafında özel alanlara erişmek için nereye bakmam gerekiyor diyorsan cevaplayayım. Bir kere kendi özel alanlarını oluşturacaksın. Burada sana yol gösterecek varlık; \XF\Entity\AbstractField düzenleme yaparken cevap almak için parent::fieldAddEditResponse($field) tabii repository tarafında da bakman gereken yer; XF\Repository\AbstractFieldMap;

Tabii kullanıcılar tarafına da bu verileri işlemen gerekecek yine bir varlık sınıfına ihtiyacın olacak ve bu XF\Mvc\Entity\Structure sınıfını dahil edeceksin methodun içerisinde de parent::getStructure($structure) tanımlayıp columns değerlerini alacaksın aldığında değerleri örnek $columns değişkenine aktaracaksın ve değerleri aktarmış olduğun bu değişkeni $parent->columns = array_merge($parent->columns,$columns); ile birleştirip return $parent ile geriye döndüreceksin.

Çok kapsamlı bir işlem, bunu burada anlatmak bile çok zor ama yukarıda söylediklerim anlaman için en iyi yöntem; Burada anlatmak istediğim bakacağın en iyi yöntem; Xenforo bunu nasıl yapmış? XenForo tarafında bu işin nasıl döndüğünü anlamadan bu işlemi yapmak çok zor. Bu gibi durumlarda xenforo dosyalarını aslında size yardımcı bir framework gibi düşünün. Tıpkı laravel gibi, tıpkı symfony gibi. Onlar gibi bir frameworktür demiyorum sadece öyle düşünün ve xenforo'a da öyle yaklaşın. Ancak böyle çözebilirsiniz. Xenforo da onlar kadar detaylı bir döküman olmadığı için bunu onların özel alanlar için yazdığı kodlara bakarak çözmeye ve anlamaya çalışıyoruz. Bir programcı için dünyanın en zor işlerinden biri, bir başkasının yazdığı kodu çözmektir. Belki konudan bağımsız olacak ama kafanızda bir ışık yakması açısından önemli! Şirketler neden ille de Laravel bilen eleman arıyor? Çünkü Laravel'in çatısı belli. O şirketten Ahmet işi bıraksa Mehmet'i işe alır kaldığı yerden devam ettirirler. Ama Ahmet Laravel kullanmayıp kendi sınıflarıyla, yöntemleri ile bu işi yapsaydı Ahmet'in yazdığı kodu, Mehmet çözmek için (projenin büyüklüğüne göre) haftalar, aylar, belki yıllarca üstünde çalışması gerekecekti. İşte XF tarafında eklenti konusunda uzmanlaşmakta buradan geçiyor. XF'nin yazdığı kodları çözmek haftalar, aylar hatta yıllar alabilir. Ama güzel tarafı yapı güzel hazırlandığı için, repo, entity, service vs hangi sınıfın nerede olabileceğini ve kodlara baktığınızda ne işe yaradığını anlayabiliyorsunuz. Aksi zaten hiçbir yazılımcının XF tarafına bulaşmamasına neden olurdu ;)
 
Merhaba bunu inceleyin isterseniz fikir verir?
 
Merhaba, Lim10Ata Lim10Ata

Şimdi burası REST API endpoints (2.2) xenforo tarafını ilgilendiren bir durum steam ile ilgili bir durum değil. Yani ben xenforo apisini kullanarak kendi yazılımıma xenforo yazılımı tarafından gelen verileri işleyebilirim. Steam tarafında ise tamamen steam apisine bağlı hareket edebilirim. Burada yapman gereken XF tarafına, steam apisini nasıl çekeceğin. Yani bizim REST API endpoints (2.2) ile herhangi bir işimiz yok.

Gelelim sorunun kendisine burada algoritman çok önemli yani neyi ne için ne amaçla yapacağını en iyi programı yazacak olan kişi bilir. Ama XF tarafında özel alanlara erişmek için nereye bakmam gerekiyor diyorsan cevaplayayım. Bir kere kendi özel alanlarını oluşturacaksın. Burada sana yol gösterecek varlık; \XF\Entity\AbstractField düzenleme yaparken cevap almak için parent::fieldAddEditResponse($field) tabii repository tarafında da bakman gereken yer; XF\Repository\AbstractFieldMap;

Tabii kullanıcılar tarafına da bu verileri işlemen gerekecek yine bir varlık sınıfına ihtiyacın olacak ve bu XF\Mvc\Entity\Structure sınıfını dahil edeceksin methodun içerisinde de parent::getStructure($structure) tanımlayıp columns değerlerini alacaksın aldığında değerleri örnek $columns değişkenine aktaracaksın ve değerleri aktarmış olduğun bu değişkeni $parent->columns = array_merge($parent->columns,$columns); ile birleştirip return $parent ile geriye döndüreceksin.

Çok kapsamlı bir işlem, bunu burada anlatmak bile çok zor ama yukarıda söylediklerim anlaman için en iyi yöntem; Burada anlatmak istediğim bakacağın en iyi yöntem; Xenforo bunu nasıl yapmış? XenForo tarafında bu işin nasıl döndüğünü anlamadan bu işlemi yapmak çok zor. Bu gibi durumlarda xenforo dosyalarını aslında size yardımcı bir framework gibi düşünün. Tıpkı laravel gibi, tıpkı symfony gibi. Onlar gibi bir frameworktür demiyorum sadece öyle düşünün ve xenforo'a da öyle yaklaşın. Ancak böyle çözebilirsiniz. Xenforo da onlar kadar detaylı bir döküman olmadığı için bunu onların özel alanlar için yazdığı kodlara bakarak çözmeye ve anlamaya çalışıyoruz. Bir programcı için dünyanın en zor işlerinden biri, bir başkasının yazdığı kodu çözmektir. Belki konudan bağımsız olacak ama kafanızda bir ışık yakması açısından önemli! Şirketler neden ille de Laravel bilen eleman arıyor? Çünkü Laravel'in çatısı belli. O şirketten Ahmet işi bıraksa Mehmet'i işe alır kaldığı yerden devam ettirirler. Ama Ahmet Laravel kullanmayıp kendi sınıflarıyla, yöntemleri ile bu işi yapsaydı Ahmet'in yazdığı kodu, Mehmet çözmek için (projenin büyüklüğüne göre) haftalar, aylar, belki yıllarca üstünde çalışması gerekecekti. İşte XF tarafında eklenti konusunda uzmanlaşmakta buradan geçiyor. XF'nin yazdığı kodları çözmek haftalar, aylar hatta yıllar alabilir. Ama güzel tarafı yapı güzel hazırlandığı için, repo, entity, service vs hangi sınıfın nerede olabileceğini ve kodlara baktığınızda ne işe yaradığını anlayabiliyorsunuz. Aksi zaten hiçbir yazılımcının XF tarafına bulaşmamasına neden olurdu ;)
Abi yazdığın yorum için teşekkür ederim aslında işin xenforo tarafı zorluyor beni. Riot api/steam api ile gerekli oyuncu istatistiklerini çekebiliyorum ondan yana sıkıntım yok fakat. Bunu xenforo hesabıyla eşleştirme noktasında malesef patlıyorum bakalım bulacaz bir çözüm.
 
Merhaba bunu inceleyin isterseniz fikir verir?
Merhaba yorumunuz için teşekkür ederim atmış olduğunuz eklentiyi inceledim fakat benim dediğim mantık ile yapılmamış harici bir sitedeki overlaystan yararlanıyor.
 

Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.