Obtenez des informations sur les articles détenus par un utilisateur
Vous pouvez utiliser l'API ZEPETO.Module.Shop pour récupérer les informations sur les articles de l'utilisateur actuellement connecté par catégorie.
Installer
Fenêtre → Gestionnaire de paquets → Veuillez d'abord installer le paquet ZEPETO.World version 1.21.14 ou supérieure.
Ensuite, installez le paquet ZEPETO.Module version 1.0.7 ou supérieure.

API ZEPETO.Module.Shop
Si vous êtes intéressé par l'API ZEPETO.Module.Shop, consultez la documentation :
📘 Veuillez vous référer au guide suivant. [API ZEPETO.Module.Shop]
Exemple d'affichage des informations sur les articles
- Projet > Créer > ZEPETO > TypeScript est créé et le nom est changé en MaListeD'Articles.
- Écrire un script d'exemple comme indiqué ci-dessous.
import { ZepetoScriptBehaviour } from 'ZEPETO.Script'
import { ShopService, Category, ItemKeyword } from 'ZEPETO.Module.Shop'
import { ZepetoPropertyFlag } from 'Zepeto'
import { Texture2D, WaitUntil } from 'UnityEngine'
import { RawImage } from 'UnityEngine.UI'
import { Item } from 'ZEPETO.Module.Content'
export default class MaListeD'Articles extends ZepetoScriptBehaviour {
public thumbnailImage: RawImage;
Start() {
this.StartCoroutine(this.CoGetMyCategory());
}
*CoGetMyCategory() {
var requestCategory = ShopService.GetMyCategoryAsync();
yield new WaitUntil(() => requestCategory.keepWaiting == false);
if (requestCategory.responseData.isSuccess) {
let categoryInfo = requestCategory.responseData.category;
console.log(`[Informations sur la catégorie] ${categoryInfo.displayName} - longueur : ${categoryInfo.categories.Length}`);
let categories: Category[] = categoryInfo.categories;
for (const category of categories) {
console.log(`[Nom d'affichage de la catégorie] ${category.displayName} `);
//Le mot-clé de la catégorie est utilisé comme argument dans la fonction ShopService.GetMyContentItemListAsync
console.log(`[Mot-clé de la catégorie] ${category.keyword} `);
}
}
this.StartCoroutine(this.CoGetMyItem());
}
*CoGetMyItem() {
var requestItemList = ShopService.GetMyContentItemListAsync(ItemKeyword.all, null);
yield new WaitUntil(() => requestItemList.keepWaiting == false);
if (requestItemList.responseData.isSuccess) {
let items: Item[] = requestItemList.responseData.items;
// Le nombre d'articles reçus en résultat de GetMyContentItemListAsync().
console.log(items.length);
for (let i = 0; i < items.length; ++i) {
const property: ZepetoPropertyFlag = items[i].property;
// ID de l'article et propriété de l'article
console.log(`[Article de contenu] (id): ${items[i].id} | (propriété): ${property}`);
// Définir la miniature de l'article comme la texture d'une rawImage
var textureReq = items[i].GetThumbnailAsync();
yield new WaitUntil(() => textureReq.keepWaiting == false);
let thumbnailTexture: Texture2D = textureReq.responseData.texture;
this.thumbnailImage.texture = thumbnailTexture;
}
}
}
}

- Description du script
- Récupérer les informations de l'onglet Mes articles
- Appelez ShopService.GetMyCategoryAsync() pour connaître les catégories d'articles dans l'onglet Mes articles.
- Lorsque vous recevez une réponse avec succès, vous pouvez accéder à l'objet CategoryResponse via la propriété responseData.
- CategoryResponse.category.categories est parcouru et la liste des catégories d'articles dans l'onglet Mes articles est affichée.
- Récupérer la liste des articles
- Appelez ShopService.GetMyContentItemListAsync(ItemKeyword.all, null) pour récupérer la liste des articles pour toutes les catégories.
- Vous pouvez choisir de récupérer des articles uniquement à partir de certaines catégories. Par exemple, vous pouvez utiliser ItemKeyword.hair au lieu de ItemKeyword.all pour récupérer uniquement les articles de cheveux.
- Le deuxième paramètre n'est utilisé que si vous connaissez le jeton de la page suivante à demander. Réglez-le sur null la première fois que vous appelez l'API.
- Pour des exemples liés à nextPageToken, consultez les informations ci-dessous.
- Lorsque vous recevez une réponse réussie, vous pouvez accéder à l'objet ContentItemListResponse via la propriété responseData
- ItemResponse.items est parcouru et l'ID et le code Enum de chaque article sont affichés.
- De plus, la miniature de l'article est définie comme l'image brute désignée.
- Après avoir terminé d'écrire le script, ajoutez le script à l'objet dans la scène.
- Appuyer sur le bouton Play vous montrera la liste des catégories de l'onglet Mes articles et les informations sur les articles de toutes les catégories.



- Si vous créez le prefab de miniature d'élément et que vous souhaitez que les miniatures soient créées dynamiquement en fonction de la liste d'éléments, vous pouvez afficher la miniature de la liste d'éléments sur l'interface utilisateur.
Exemple pour vérifier le statut de possession d'un certain élément par l'utilisateur
Vous pouvez utiliser GetMyContentItemListAsync() pour vérifier si quelqu'un dans un monde porte des vêtements particuliers.
Ce qui suit est un exemple simple pour afficher un message sur l'interface utilisateur d'un utilisateur qui possède un élément spécifique.
- Projet > Créer > ZEPETO > TypeScript est créé et le nom est changé en VérifierÉlément.
- Écrivez un script d'exemple comme indiqué ci-dessous.
import { ZepetoScriptBehaviour } from 'ZEPETO.Script'
import { ShopService, ItemKeyword } from 'ZEPETO.Module.Shop'
import { ZepetoPropertyFlag } from 'Zepeto'
import { WaitUntil } from 'UnityEngine'
import { Text } from 'UnityEngine.UI'
import { Item } from 'ZEPETO.Module.Content'
export default class CheckItem extends ZepetoScriptBehaviour {
public resultText: Text;
public checkItemID: string;
Start() {
this.resultText.gameObject.SetActive(false);
this.StartCoroutine(this.CoCheckItem());
}
*CoCheckItem() {
let nextPageToken: string | null = null;
do {
// Request the list of the user's content items.
const requestItemList = ShopService.GetMyContentItemListAsync(ItemKeyword.all, nextPageToken);
yield new WaitUntil(() => requestItemList.keepWaiting == false);
if (requestItemList.responseData.isSuccess) {
// Get the content items from the response.
const contentItems: Item[] = requestItemList.responseData.items;
nextPageToken = requestItemList.responseData.nextPageToken;
// Iterate through the content items.
for (let i = 0; i < contentItems.length; ++i) {
const property: ZepetoPropertyFlag = contentItems[i].property;
// Check if the item ID matches the specified ID.
if (contentItems[i].id == this.checkItemID) {
// Activate the matched item message.
this.ActivateMatchedItem();
break;
}
}
}
else {
break;
}
} while (nextPageToken != null);
}
ActivateMatchedItem() {
// Show the matched item message.
this.resultText.gameObject.SetActive(true);
this.resultText.text = "Wow, vous avez un article que j'ai créé !";
}
}
- Description du script
- Ceci est un script qui parcourt la liste 'Mon article' (toutes les catégories) d'un utilisateur connecté à un Monde et trouve l'ID d'article correspondant saisi dans l'Inspecteur.
- S'il y a de nombreux articles, la valeur nextPageToken n'est pas nulle. Par conséquent, le processus est répété avec une instruction do-while jusqu'à ce que la valeur devienne nulle.
- Remarquez comment nextPageToken a été fourni comme le deuxième paramètre de ShopService.GetMyContentItemListAsync(ItemKeyword.all, nextPageToken).
- Lorsque vous recevez une réponse réussie, vous pouvez accéder à l'objet ContentItemListResponse via la propriété responseData.
- ItemResponse.items est parcouru pour trouver une correspondance pour l'ID d'article saisi.
- Si un article correspondant est trouvé, ActivateMatchedItem() est appelé pour afficher le texte à l'écran de l'utilisateur et mettre fin à la boucle.
- Après avoir terminé d'écrire le script, ajoutez le script à l'objet dans la Scène.
- Entrez l'ID de l'article que vous souhaitez vérifier si un utilisateur dans un Monde l'a sur l'Inspecteur.

- Appuyez sur le bouton Lecture pour exécuter le processus. Du texte apparaîtra à l'écran si l'utilisateur connecté à un Monde possède un objet correspondant à l'ID d'objet saisi.

Vous pouvez appliquer l'exemple pour créer toutes sortes de contenus intéressants.