Is it possible to get user\'s steamID by his nickname? I didn\'t find solution in steam API documentation. The only one thing that I found is an old post on http://dev.dota2.com
Using PHP and the Steam Condenser project, you can accomplish this.
require_once('steam/steam-condenser.php');
$playername = 'NAMEOFPLAYER';
try
{
$id = SteamId::create($playername);
}
catch (SteamCondenserException $s)
{
// Error occurred
}
echo $id->getSteamId;
There are usage examples in the wiki for the project if you need more information.
You can use
GET http://api.steampowered.com/ISteamUser/ResolveVanityURL/v0001/
to get the SteamID from the custom URL of a Steam Profile. See http://wiki.teamfortress.com/wiki/WebAPI/ResolveVanityURL
You can't get the steamID from someone's current nickname because nicknames can change and are not unique.
Have you read over this from the Steam Web API?
https://developer.valvesoftware.com/wiki/Steam_Web_API#GetPlayerSummaries_.28v0002.29
It has an example of using a steam profile url to return the users Steam ID, also some other arguments to gather other information.
If you read down a bit from there it states that "Returns the friend list of any Steam user
Example URL: http://api.steampowered.com/ISteamUser/GetFriendList/v0001/?key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&steamid=76561197960435530&relationship=friend"
Here is my solution for this problem:
module.exports.getProfile = async (req, res) => {
let response = { success: false, data: {}, error: {} }
let { profileAddress } = req.body;
if (profileAddress) {
try {
let steamId;
let split = profileAddress.split('/');
split = split.filter(arrayItem => arrayItem != '');
if (split[split.length - 2] === 'profiles') {
steamId = split[split.length - 1]
} else {
let vanityUrl = split[split.length - 1];
let steamIdResponse = await axios.get(
`http://api.steampowered.com/ISteamUser/ResolveVanityURL/v0001/?key=${process.env.steamApiKey}&vanityurl=${vanityUrl}`,
);
if (steamIdResponse.data.response.success === 1) {
steamId = steamIdResponse.data.response.steamid;
} else {
response.error = steamIdResponse.data.response.message;
}
}
let profileResponse = await axios.get(
`http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=${process.env.steamApiKey}&steamids=${steamId}`,
);
if (profileResponse.data.response.players[0]) {
response = {
success: true,
data: profileResponse.data.response.players[0],
error: null
}
res.status(200);
} else {
response.error = response.error ? response.error : "Failed to get Profile.";
res.status(500);
}
res.send(response);
} catch (error) {
console.log(error)
response.error = "Failed to get Profile."
res.status(500).send(response);
}
} else {
response.error = "Profile URL missing."
res.status(500).send(response);
}
};