Créer votre première présence
Créez une nouvelle présence Nowly avec la CLI et envoyez votre première activité Discord Rich Presence.
Commencez avec la CLI
Utilisez la CLI Nowly pour générer une nouvelle présence :
nowly init "Exemple"La CLI crée les métadonnées, un script de présence et les fichiers visuels requis.
Code de base d'une présence
Presence et Assets sont fournis par le runtime - voir Presence API et Assets.
document est l'API DOM standard du navigateur, disponible car les présences s'exécutent comme des scripts de contenu dans l'extension.
Seuls PresenceType (et d'autres helpers comme createMediaTimestamps) doivent être importés depuis @nowly/sdk.
import { PresenceType } from "@nowly/sdk"
const presence = new Presence()
presence.on("UpdateData", async () => {
await presence.setActivity({
details: document.title,
state: document.location.hostname,
largeImageKey: Assets.Logo,
type: PresenceType.Watching,
})
})Flux d'exécution
Lorsque l'utilisateur visite une URL correspondante, Nowly charge votre présence. La présence lit l'état de la page et appelle setActivity. L'extension transmet ces données à Nowly Host, qui met à jour Discord.
Boucle de développement
Générer
Créez le dossier de la présence, les métadonnées et les fichiers visuels requis.
nowly init "Exemple"Générer
Créez le dossier de la présence, les métadonnées et les fichiers visuels requis.
nowly init "Exemple"Configurer
Définissez le nom, l'auteur, les URL prises en charge, la catégorie, la couleur, les descriptions localisées, et discordNative si Discord gère déjà la plateforme.
Modifiez metadata.json - voir Metadata pour tous les champs disponibles.
Configurer
Définissez le nom, l'auteur, les URL prises en charge, la catégorie, la couleur, les descriptions localisées, et discordNative si Discord gère déjà la plateforme.
Modifiez metadata.json - voir Metadata pour tous les champs disponibles.
Implémenter
Écrivez la logique de la présence à l'aide du SDK Presence.
import { PresenceType } from "@nowly/sdk"
const presence = new Presence()
presence.on("UpdateData", async () => {
await presence.setActivity({
details: document.title,
largeImageKey: Assets.Logo,
type: PresenceType.Watching,
})
})Implémenter
Écrivez la logique de la présence à l'aide du SDK Presence.
import { PresenceType } from "@nowly/sdk"
const presence = new Presence()
presence.on("UpdateData", async () => {
await presence.setActivity({
details: document.title,
largeImageKey: Assets.Logo,
type: PresenceType.Watching,
})
})Valider
Vérifiez que la structure des métadonnées est correcte et que les fichiers visuels sont en place.
nowly validateValider
Vérifiez que la structure des métadonnées est correcte et que les fichiers visuels sont en place.
nowly validateCompiler
Compilez la présence en un paquet autonome.
nowly build exempleCompiler
Compilez la présence en un paquet autonome.
nowly build exempleCharger
Installez la présence compilée dans le navigateur. Deux méthodes : une extension précompilée, ou un zip à déposer.
Voir Charger et tester en local pour le comparatif complet.
Première fois (Nowly pas encore dans le navigateur) : intégrez la présence dans une extension prête à charger.
nowly extension exempleChargez dist/extension-dev en unpacked dans chrome://extensions.
Nowly déjà chargé unpacked : créez un zip et déposez-le dans Réglages → Avancé → Debug. Les installations du store refusent les zips non signés.
nowly pack exempleCharger
Installez la présence compilée dans le navigateur. Deux méthodes : une extension précompilée, ou un zip à déposer.
Voir Charger et tester en local pour le comparatif complet.
Première fois (Nowly pas encore dans le navigateur) : intégrez la présence dans une extension prête à charger.
nowly extension exempleChargez dist/extension-dev en unpacked dans chrome://extensions.
Nowly déjà chargé unpacked : créez un zip et déposez-le dans Réglages → Avancé → Debug. Les installations du store refusent les zips non signés.
nowly pack exempleTester
Ouvrez le site web cible - la présence s'active automatiquement.
Visitez le site
Tester
Ouvrez le site web cible - la présence s'active automatiquement.
Visitez le site
Répétez Implémenter → Compiler → Charger après chaque modification de code.