• Хостинг игровых серверов

    Максимальная производительность для ваших игровых серверов!

    Заказать сейчас

Помогите Получить ник по SteamID64

olol321

Нестандартное звание
6 (78%)
22 Июн 2023
650
3
178
238
24
Нужен кусочек кода или подсказка, мне нужно получить ник по SteamID64, при том что игрок оффлайн, может кто подсказать что и как?
 
Вы можете использовать Steam Web API для получения информации о профиле игрока, включая его никнейм, используя SteamID64. Вам нужно выполнить GET-запрос к адресу https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=<API_KEY>&steamids=<STEAM_ID64> (замените <API_KEY> на ваш API-ключ Steam и <STEAM_ID64> на нужный SteamID64).

Пример кода на языке Python:

Python:
import requests

API_KEY = "YOUR_API_KEY"
STEAM_ID64 = "YOUR_STEAM_ID64"

response = requests.get("https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/",
                        params={"key": API_KEY, "steamids": STEAM_ID64})

if response.status_code == 200:
    player_data = response.json()["response"]["players"][0]
    print(player_data["personaname"])  # печать ника игрока
else:
    print("Ошибка выполнения запроса")

Обратите внимание, что вы должны заменить YOUR_API_KEY на свой API-ключ Steam и YOUR_STEAM_ID64 на нужный SteamID64.
 
Вы можете использовать Steam Web API для получения информации о профиле игрока, включая его никнейм, используя SteamID64. Вам нужно выполнить GET-запрос к адресу https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=<API_KEY>&steamids=<STEAM_ID64> (замените <API_KEY> на ваш API-ключ Steam и <STEAM_ID64> на нужный SteamID64).

Пример кода на языке Python:

Python:
import requests

API_KEY = "YOUR_API_KEY"
STEAM_ID64 = "YOUR_STEAM_ID64"

response = requests.get("https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/",
                        params={"key": API_KEY, "steamids": STEAM_ID64})

if response.status_code == 200:
    player_data = response.json()["response"]["players"][0]
    print(player_data["personaname"])  # печать ника игрока
else:
    print("Ошибка выполнения запроса")

Обратите внимание, что вы должны заменить YOUR_API_KEY на свой API-ключ Steam и YOUR_STEAM_ID64 на нужный SteamID64.
напиши это на c# и от куда достать api key
 
напиши это на c# и от куда достать api key
Пример кода на C# для получения ника игрока в игре Rust с использованием Steam Web API:

Код:
using System;
using System.Net.Http;
using Newtonsoft.Json.Linq;

class Program
{
    static async System.Threading.Tasks.Task Main(string[] args)
    {
        const string apiKey = "YOUR_API_KEY";
        const string steamId64 = "YOUR_STEAM_ID64";

        using (var client = new HttpClient())
        {
            var response = await client.GetAsync($"https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key={apiKey}&steamids={steamId64}");
            if (response.IsSuccessStatusCode)
            {
                var responseJson = await response.Content.ReadAsStringAsync();
                var playerData = JObject.Parse(responseJson)["response"]["players"][0];
                var playerName = (string)playerData["personaname"];
                Console.WriteLine(playerName);
            }
            else
            {
                Console.WriteLine("Ошибка выполнения запроса");
            }
        }
    }
}

Чтобы получить API-ключ Steam, необходимо зарегистрироваться на сайте https://steamcommunity.com/dev/apikey. После регистрации вам будет предоставлен уникальный ключ, который нужно использовать в запросах к Steam Web API.
 
Пример кода на C# для получения ника игрока в игре Rust с использованием Steam Web API:

Код:
using System;
using System.Net.Http;
using Newtonsoft.Json.Linq;

class Program
{
    static async System.Threading.Tasks.Task Main(string[] args)
    {
        const string apiKey = "YOUR_API_KEY";
        const string steamId64 = "YOUR_STEAM_ID64";

        using (var client = new HttpClient())
        {
            var response = await client.GetAsync($"https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key={apiKey}&steamids={steamId64}");
            if (response.IsSuccessStatusCode)
            {
                var responseJson = await response.Content.ReadAsStringAsync();
                var playerData = JObject.Parse(responseJson)["response"]["players"][0];
                var playerName = (string)playerData["personaname"];
                Console.WriteLine(playerName);
            }
            else
            {
                Console.WriteLine("Ошибка выполнения запроса");
            }
        }
    }
}

Чтобы получить API-ключ Steam, необходимо зарегистрироваться на сайте https://steamcommunity.com/dev/apikey. После регистрации вам будет предоставлен уникальный ключ, который нужно использовать в запросах к Steam Web API.
сделай без библиотеки system.net.http
 
сделай без библиотеки system.net.http
К сожалению, без использования библиотеки System.Net.Http невозможно выполнить HTTP-запросы и получить данные из Steam Web API. Эта библиотека предоставляет удобный интерфейс для работы с HTTP-запросами в C# и является неотъемлемой частью большинства приложений, работающих с веб-сервисами. Если Вам необходимо написать решение без использования данной библиотеки, нужно использовать другие средства для выполнения HTTP-запросов, например, сокеты или другие библиотеки.
 
Пример кода на C# для получения ника игрока в игре Rust с использованием Steam Web API:

Код:
using System;
using System.Net.Http;
using Newtonsoft.Json.Linq;

class Program
{
    static async System.Threading.Tasks.Task Main(string[] args)
    {
        const string apiKey = "YOUR_API_KEY";
        const string steamId64 = "YOUR_STEAM_ID64";

        using (var client = new HttpClient())
        {
            var response = await client.GetAsync($"https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key={apiKey}&steamids={steamId64}");
            if (response.IsSuccessStatusCode)
            {
                var responseJson = await response.Content.ReadAsStringAsync();
                var playerData = JObject.Parse(responseJson)["response"]["players"][0];
                var playerName = (string)playerData["personaname"];
                Console.WriteLine(playerName);
            }
            else
            {
                Console.WriteLine("Ошибка выполнения запроса");
            }
        }
    }
}

Чтобы получить API-ключ Steam, необходимо зарегистрироваться на сайте https://steamcommunity.com/dev/apikey. После регистрации вам будет предоставлен уникальный ключ, который нужно использовать в запросах к Steam Web API.
Используй webrequest.Enqueue вместо библиотеки System.Net.Http. Пришли готовый код.
 
Используй webrequest.Enqueue вместо библиотеки System.Net.Http. Пришли готовый код.
Конечно, вот пример кода на C# с использованием метода webrequest.Enqueue для получения ника игрока в игре Rust с использованием Steam Web API:

Код:
using Facepunch.Extend;
using Oxide.Core.Libraries.Covalence;

class ExamplePlugin : CovalencePlugin
{
    private const string ApiKey = "YOUR_API_KEY";
    private const string SteamId64 = "YOUR_STEAM_ID64";

    private void OnServerInitialized()
    {
        webrequest.Enqueue($"https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key={ApiKey}&steamids={SteamId64}", null, (code, response) =>
        {
            if (code != 200 || response == null)
            {
                Puts("Ошибка выполнения запроса");
                return;
            }

            var playerData = JObject.Parse(response)["response"]["players"][0];
            var playerName = (string)playerData["personaname"];
            Puts("Ник игрока: " + playerName);
        }, this);
    }
}

Обратите внимание, что для использования метода webrequest.Enqueue нужно добавить в файл манифеста плагина (plugin.json) следующую строку:

Код:
"webrequest": []
 
Используй webrequest.Enqueue вместо библиотеки System.Net.Http. Пришли готовый код.
C#:
 private string GetSteamNickFromID64(string steamID64)
        {
            string url = $"https://steamcommunity.com/profiles/{steamID64}/?xml=1";
            string nickname = "";

            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Method = "GET";

                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                using (Stream stream = response.GetResponseStream())
                using (StreamReader reader = new StreamReader(stream))
                {
                    string responseXml = reader.ReadToEnd();
                    int startIndex = responseXml.IndexOf("<steamID><![CDATA[") + 18;
                    int endIndex = responseXml.IndexOf("]]></steamID>");

                    if (startIndex >= 18 && endIndex >= 0)
                    {
                        nickname = responseXml.Substring(startIndex, endIndex - startIndex);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("An error occurred while retrieving the Steam nickname: " + e.Message);
            }

            return nickname;
        }
сам подумал подумал, стало лень думать в итоге спросил чат гптэшного, придумал такую схему, вроде рабочая
 
Конечно, вот пример кода на C# с использованием метода webrequest.Enqueue для получения ника игрока в игре Rust с использованием Steam Web API:

Код:
using Facepunch.Extend;
using Oxide.Core.Libraries.Covalence;

class ExamplePlugin : CovalencePlugin
{
    private const string ApiKey = "YOUR_API_KEY";
    private const string SteamId64 = "YOUR_STEAM_ID64";

    private void OnServerInitialized()
    {
        webrequest.Enqueue($"https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key={ApiKey}&steamids={SteamId64}", null, (code, response) =>
        {
            if (code != 200 || response == null)
            {
                Puts("Ошибка выполнения запроса");
                return;
            }

            var playerData = JObject.Parse(response)["response"]["players"][0];
            var playerName = (string)playerData["personaname"];
            Puts("Ник игрока: " + playerName);
        }, this);
    }
}

Обратите внимание, что для использования метода webrequest.Enqueue нужно добавить в файл манифеста плагина (plugin.json) следующую строку:

Код:
"webrequest": []
хотя смотря твой вариант задумался перейти на него
 
  • Мне нравится
Реакции: MrFallen
хотя смотря твой вариант задумался перейти на него
Рад, что мой ответ может быть полезным для тебя. Если у тебя есть какие-либо вопросы, не стесняйся задавать их. Я всегда готов помочь!
 
Активность
Пока никто не печатает сообщение