Deling, venner og invitasjoner i PlayDrop-spill
Del et spill med et bilde eller klipp, les startdata, velg venner, send invitasjons- og utfordringskort i PlayDrop Chat og anbefal andre spill.
PlayDrop håndterer delingsarket, vennelisten og chatten; spillet ditt ber om dem i riktig øyeblikk. Spillerne tar med seg vennene sine, og vennene havner i spillet ditt.
Del spillet
Kall sdk.host.share() fra et trykk eller klikk. Det deler spillets offentlige side med valgfri tekst, et bilde eller en kort video, og valgfrie startdata.
shareButton.addEventListener("click", async () => {
try {
await sdk.host.share({ text: `I reached level ${level} in Moon Jump`, image: scoreCardBlob, payload: "level-7" });
} catch (error) {
console.warn("Share failed", error);
}
});image: en GIF-, JPEG-, PNG- eller WebP-Blob på opptil 8 MiB. Verter som ikke kan legge ved bilder, deler bare lenken.video: en MP4-Blob på høyst 15 sekunder og 20 000 000 byte, i stedet for et bilde. H.264/AAC i 1080p i 16:9, 9:16 eller 1:1 fungerer best. Verter uten videostøtte avviser medhost_share_video_unsupportedi stedet for å dele en vanlig lenke.- Klargjør Bloben før trykket; hvis du genererer den etter trykket, kan nettleseren miste tillatelsen til å dele.
- Du kan ikke dele en egendefinert URL eller andre filer. Lenken er alltid spillets side.
Bildefeilene er invalid_host_share_image, host_share_image_type og host_share_image_too_large.
Les startdataene
payload er opptil 256 base64url-tegn. En spiller som åpner den delte lenken, starter spillet med sdk.host.launchPayload satt til denne verdien, eller null. Behandle det som upålitelige inndata: valider det, og sjekk på serveren at spilleren har lov til å bli med i et rom det nevner. Legg aldri påloggingsopplysninger i det.
Velg venner og send spillkort
sdk.social.selectFriends({ max }) åpner PlayDrops vennevelger (1 til 10, standard 1) og returnerer bare vennene spilleren valgte, eller [] hvis spilleren avbryter. Send deretter et kort som vises i PlayDrop Chat:
const [friend] = await sdk.social.selectFriends({ max: 1 });
if (friend) {
await sdk.social.sendMessage({
recipientUserId: friend.id,
type: "challenge",
title: "Beat my time: 42.3 s",
subtitle: "Moon Jump, level 7",
payload: "level-7",
clientMessageId: `challenge-${runId}-${friend.id}`,
});
}typeerinvite,request,gift,challengeellerturn.titleer opptil 80 tegn ogsubtitleopptil 160.expiresInSecondser fra 60 sekunder til 30 dager (standard).clientMessageIdgjør et nytt forsøk trygt: gjenbruk returnerer den opprinnelige meldingen.- Du kan sende meldinger til venner spilleren har valgt, venner som spiller dette spillet, og spillere som spilleren allerede utveksler spillmeldinger med. Fremmede man møter via matchmaking, kan ikke få meldinger.
Les innkommende kort med getMessages({ limit }), eldste først, og merk deretter hvert av dem som håndtert med consumeMessage(message.id). Avsenderen er message.from.id.
const page = await sdk.social.getMessages({ limit: 20 });
for (const message of page.messages) {
await applyCard(message.type, message.from.id, message.payload);
await sdk.social.consumeMessage(message.id);
}Fortsett med cursor: page.nextCursor til den er null.
Venner som spiller dette spillet
sdk.social.listGameFriends() returnerer venner med en nylig økt i dette spillet: en god liste for «spill med»-knapper. Den viser ikke hele vennelisten eller hvem som er pålogget. openProfile(userId) åpner en spillers profil, og openChat({ recipientUserId, draftMessage }) åpner Chat med et redigerbart utkast som spilleren sender selv.
En ny spiller som kom via en venn, kan ha sdk.host.launchFriend satt. Tilby å spille med vennen og bekreft med selectFriends({ max: 1 }); start aldri noe automatisk.
Anbefal andre spill
I en naturlig pause, for eksempel når spillet er over, viser sdk.host.showGames({ games: ["@creator/name"] }) PlayDrop-kort for ett til tre andre offentlige spill og setter ditt spill på pause. Kallet fullføres med played (PlayDrop bytter da spill) eller dismissed. sdk.host.preloadGame(ref) gir hint om spillet spilleren kanskje åpner neste gang.
Krav
Deling og sosiale kall krever en pakke som bruker SDK-en. Vennefunksjoner krever en innlogget spiller. Vinduer som verten eier, setter spillet på pause; håndter pause og gjenopptakelse.