L'API de l'inventaire vous permet d'accéder à la plupart des mêmes informations que la page Mon inventaire Roblox. Vous pouvez vérifier si un utilisateur possède des articles individuels et récupérer la liste complète des articles que possède un joueur.
Les réponses de l'API de l'inventaire incluent des articles des catégories suivantes :
- Vêtements (accessoires, bas, vêtements classiques, chaussures, hauts)
- Achats et récompenses ( Badges, passes, lieux achetés, serveurs privés)
- Objets d'avatar (animations d'avatar, têtes classiques, emotes, visages, cheveux, têtes)
Avant d'utiliser l'API de l'inventaire, vous devez générer une clé API ou 配置z OAuth 2 pour votre application. Les exemples sur cette page utilisent des clés API.
Vérification de la propriété de l'objet
Si vous voulez vérifier si un utilisateur possède un élément spécifique (par exemple, un badge, un passe, un serveur privé ou une licence), utilisez le filter parameter pour vérifier pour une liste séparée par une virgule de l'un ou plusieurs ID. Ce code d'exemple vérifie trois ID de ressources :
const https = require('node:https');
const userId = 11111111111;
const hostname = 'apis.roblox.com';
const path = `/cloud/v2/users/${userId}/inventory-items`;
const params = '?filter=assetIds=62724852,1028595,4773588762';
const url = 'https://' + hostname + path + params;
const apiKey = '123456789012345678901234567890123456789012345678';
const options = {
headers: {
'x-api-key': `${apiKey}`,
},
};
https
.get(url, options, (response) => {
console.log('statusCode:', response.statusCode);
let data = '';
response.on('data', (d) => {
data += d;
});
response.on('end', () => {
if (response.statusCode === 200) {
const jsonData = JSON.parse(data);
console.log('Response Data:', JSON.stringify(jsonData, null, 2));
} else {
console.error('Error:', response.statusCode, response.statusMessage);
}
});
})
.on('error', (e) => {
console.error(e);
});
La réponse suivante indique que l'utilisateur possède l'un des trois articles :
{
"inventoryItems": [
{
"path": "users/11111111111/inventory-items/VVNFUl9BU1NFVF9JRD0yMDAxMDUxMTkzODg",
"assetDetails": {
"assetId": "1028595",
"inventoryItemAssetType": "CLASSIC_TSHIRT",
"instanceId": "200105119388"
}
}
],
"nextPageToken": ""
}
Objets de filtrage
Si vous souhaitez afficher, par exemple, uniquement les collectables que possède un utilisateur, utilisez le même code que ci-dessus, avec un autre filter paramètre.
const params = '?filter=onlyCollectibles=true;inventoryItemAssetTypes=*';
Mettez en œuvre des filtres en utilisant une liste séparée par un semicolon. Voici quelques exemples :
filter=onlyCollectibles=true;inventoryItemAssetTypes=HAT,CLASSIC_PANTSfilter=badgeIds=111111,222222;gamePassIds=777777;privateServerIds=999999filter=gamePasses=true;badges=true
La plupart des appels à l'API ne nécessitent pas de permissions spécifiques, mais plusieurs filtres nécessitent des permissions de lecture d'inventaire. Pour plus d'informations, voir Filtrage .
Résultats à pagination
Si une réponse inclut une valeur pour nextPageToken , utilisez cette valeur dans le pageToken paramètre de la demande suivante pour récupérer la prochaine page. Pour plus d'informations, voir Pagination.
Si le nombre de résultats est divisé par maxPageSize (par exemple, vous avez 50 résultats et un maxPageSize de 25), vous pouvez rencontrer une situation dans laquelle votre réponse inclut une valeur pour nextPageToken , mais une demande utilisant cette valeur ne renvoie pas de résultats :
GET /cloud/v2/users/{userId}/inventory-items?maxPageSize=25&pageToken=cccDDD
{
"inventoryItems": [],
"nextPageToken": ""
}
Lors de l'implémentation de la pagination dans votre application, la meilleure pratique est de vérifier non seulement pour un nextPageToken non vide, mais également pour un inventoryItems matricenon vide.