L'API d'inventaire vous permet d'accéder à la plupart des mêmes informations que la page Mon Inventaire de Roblox. Vous pouvez vérifier si un utilisateur possède des éléments individuels et récupérer la liste complète des éléments qu'un joueur possède.
Les réponses de l'API d'inventaire incluent des éléments 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)
- Éléments d'avatar (animations d'avatar, têtes classiques, émotes, visages, cheveux, têtes)
Avant d'utiliser l'API d'inventaire, vous devez générer une clé API ou configurer OAuth 2 pour votre application. Les exemples de cette page utilisent des clés API.
Vérifier la possession d'un élément
Si vous voulez vérifier si un utilisateur possède un élément particulier (par exemple, un élément limité, un badge, un pass ou un serveur privé), utilisez le paramètre filter pour vérifier une liste d'ID séparés par des virgules. Cet exemple de code vérifie trois ID d'actifs :
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 un des trois éléments :
{
"inventoryItems": [
{
"path": "users/11111111111/inventory-items/VVNFUl9BU1NFVF9JRD0yMDAxMDUxMTkzODg",
"assetDetails": {
"assetId": "1028595",
"inventoryItemAssetType": "CLASSIC_TSHIRT",
"instanceId": "200105119388"
}
}
],
"nextPageToken": ""
}
Filtrer les éléments
Si vous souhaitez afficher, par exemple, uniquement les objets de collection que possède un utilisateur, utilisez le même code que ci-dessus, mais avec un paramètre filter différent.
const params = '?filter=onlyCollectibles=true;inventoryItemAssetTypes=*';
Associez des filtres en utilisant une liste séparée par des points-virgules. 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.
Paginer les résultats
Si une réponse inclut une valeur pour nextPageToken, utilisez cette valeur dans le paramètre pageToken de la requête suivante pour récupérer la page suivante. Pour plus d'informations, voir Pagination.
Si le nombre de résultats est divisible par maxPageSize (par exemple, vous avez 50 résultats et une maxPageSize de 25), vous pouvez rencontrer une situation dans laquelle votre réponse inclut une valeur pour nextPageToken, mais une requête utilisant ce jeton ne retourne aucun résultat :
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 consiste à vérifier non seulement un nextPageToken non vide, mais aussi un tableau inventoryItems non vide.