Python ve LoL API ile ilgili yardım

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Donator
Katılım
13 Haz 2017
Mesajlar
356
Çözümler
4
Tepki puanı
50
Ödüller
9
8 HİZMET YILI
Yapmak istediğim şey LOL Client açıkken, programı çalıştırdığım zaman Client'e bağlanarak hesap hakkında bilgiler vermesi (Sihirdar adı, seviye, mavi öz vs.)
Python hakkında hiç bir bilgim yok, ChatGPT kullanarak bir şeyler yapmaya çalıştım fakat sürekli farklı farklı hatalar alıyorum.
Örnek olarak BURADA Kİ konuda arkadaş çok güzel bir program yapmış. Herhangi bir ID/PW girmeden programı çalıştırdığın zaman Client açıksa eğer sana verileri veriyor. Bu tarz bir program yapmak istemiyorum, sadece bir kaç veriyi çekip değişkenlere atamak istiyorum.

Son denediğim kod şu şekilde
Python:
import requests
import json

def get_summoner_info():
    try:
        # LCU API'ya istek yapmak için gerekli header
        headers = {
            "Accept": "application/json",
            "Authorization": "Basic Og=="
        }

        # LCU API adresi
        api_url = "http://127.0.0.1:2999/summoner/v4/summoners/me"

        # LCU API'ya GET isteği gönder
        response = requests.get(api_url, headers=headers)
        response.raise_for_status()
        summoner_info = response.json()

        return summoner_info["name"], summoner_info["summonerLevel"]
    except requests.exceptions.RequestException as e:
        print("API Hatası:", e)
        return None, None
    except KeyError as e:
        print("Veri Hatası:", e)
        return None, None

if __name__ == "__main__":
    summoner_name, summoner_level = get_summoner_info()

    if summoner_name and summoner_level:
        print(f"Sihirdar Adı: {summoner_name}")
        print(f"Seviye: {summoner_level}")

Aldığım çıktı ise bu şekilde
API Hatası: HTTPConnectionPool(host='127.0.0.1', port=2999): Max retries exceeded with url: /summoner/v4/summoners/me (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x000001CB171C3610>: Failed to establish a new connection: [WinError 10061] Hedef makine etkin olarak reddettiğinden bağlantı kurulamadı'))

Yardımcı olabilecek var mı?

Boş/spam yorumları ya da "bana da lazım" gibi yorumları raporluyorum. Bu tarz şeyler yazarak değerli(!) vaktinizi boşa harcamayın.
 
Onaylı Üye
Katılım
22 Mar 2020
Mesajlar
51
Tepki puanı
4
Ödüller
4
Yaş
27
6 HİZMET YILI
ChatGPT istediğin formattan veyahut hata aldığın yeri tekrar yazmasını isteyince düzeltiyor bende mobil oyun kodluyorum oradan
 
Onaylı Üye
Katılım
6 Şub 2024
Mesajlar
50
Tepki puanı
0
Ödüller
1
Yaş
21
2 HİZMET YILI
chatgptyi daha detaylı kullanmanı öneririm bir hata aldığında konudan bağımsız bir şekilde tekrar yazıp kodu burda ne skntı var dıye sorabilirsin
 
Onaylı Üye
Katılım
5 Nis 2023
Mesajlar
51
Tepki puanı
0
Ödüller
1
Yaş
31
3 HİZMET YILI
Kodunuzda belirtilen hata, API'ye bağlantı kurulamamasından kaynaklanıyor. Bu durum, genellikle League of Legends Client'ın (LCU) çalışmıyor olması ya da yanlış port kullanılmasından kaynaklanır. Ancak, doğrudan kodunuzda bir hata olmadığını belirtmek önemli. Eğer League of Legends Client açık ve doğru şekilde çalışıyorsa ve yine de bu hatayı alıyorsanız, sorunun çözümü için genel bir yöntem olarak aşağıdaki gibi bir düzenleme öneririm:

League of Legends Client'ı açın ve çalıştırın.
LCU'nun kullanmakta olduğu port ve token bilgisini doğru bir şekilde elde edin. Bu bilgiler genellikle LCU'nun çalıştığı dizindeki lockfile dosyasında bulunur. Ancak, burada doğrudan lockfile'a erişim ve okuma işlemi yapmayacağız; çünkü bu daha karmaşık bir işlem gerektirir ve genel olarak statik bir port ve token kullanımı örneği vermek istiyorum.
Aşağıda, doğrudan bir hata düzeltmesi yerine, API'ye başarılı bir şekilde bağlanabilmek için genel bir kullanım örneğini gösteriyorum. Bu örnekte, requests kütüphanesi kullanılarak bir GET isteği gönderilmekte ve yanıt olarak JSON verisi alınmaktadır. Unutmayın ki, bu örnek sabit bir port ve varsayılan Authorization header'ı kullanmaktadır. Gerçek kullanımda, dinamik olarak elde edilen port ve token değerlerini kullanmanız gerekecektir.

Python:
import requests

def get_summoner_info():
    try:
        # LCU API'ya istek yapmak için gerekli header
        headers = {
            "Accept": "application/json",
            "Authorization": "Basic Og=="
        }

        # LCU API adresi, portun doğru olduğundan emin olun.
        api_url = "http://127.0.0.1:2999/summoner/v4/summoners/me"

        # LCU API'ya GET isteği gönder
        response = requests.get(api_url, headers=headers)
        response.raise_for_status()  # Hata varsa exception fırlatır.
        summoner_info = response.json()

        return summoner_info["name"], summoner_info["summonerLevel"]
    except requests.exceptions.RequestException as e:
        print("API Hatası:", e)
        return None, None
    except KeyError as e:
        print("Veri Hatası:", e)
        return None, None

if __name__ == "__main__":
    summoner_name, summoner_level = get_summoner_info()

    if summoner_name and summoner_level:
        print(f"Sihirdar Adı: {summoner_name}")
        print(f"Seviye: {summoner_level}")


Bu kod, API'ye başarılı bir şekilde bağlanıp bağlanmadığınızı kontrol etmek için temel bir başlangıç noktasıdır. Gerçekte, LCU'nun portunu ve gerekli kimlik doğrulama bilgilerini dinamik olarak elde etmeniz gerekebilir. Bu, genellikle League of Legends client'ının lockfile dosyasını okuyarak yapılır, ancak bu işlem burada ele alınmamıştır.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst