첫 프레즌스 만들기
CLI로 새 Nowly 프레즌스를 만들고 첫 Discord Rich Presence 활동을 전송하세요.
CLI로 시작하기
Nowly CLI로 새 프레즌스의 스캐폴딩을 생성합니다.
nowly init "Example"CLI는 메타데이터, 프레즌스 스크립트, 필요한 에셋을 생성합니다.
기본 프레즌스 코드
Presence와 Assets는 런타임에서 제공됩니다 - Presence API와 Assets를 참고하세요.
document는 표준 브라우저 DOM API로, 프레즌스가 확장 프로그램의 콘텐츠 스크립트로 실행되기 때문에 사용할 수 있습니다.
@nowly/sdk에서 가져와야 하는 것은 PresenceType(그리고 createMediaTimestamps 같은 다른 헬퍼)뿐입니다.
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,
})
})런타임 흐름
사용자가 일치하는 URL을 방문하면 Nowly가 프레즌스를 로드합니다. 프레즌스는 페이지 상태를 읽고 setActivity를 호출합니다. 확장 프로그램은 그 페이로드를 Nowly Host로 전달하고, Nowly Host가 Discord를 업데이트합니다.
개발 루프
스캐폴딩
프레즌스 폴더, 메타데이터, 필요한 에셋을 생성합니다.
nowly init "Example"스캐폴딩
프레즌스 폴더, 메타데이터, 필요한 에셋을 생성합니다.
nowly init "Example"구성
이름, 작성자, 지원 URL, 카테고리, 색상, 다국어 설명, 그리고 Discord가 이미 해당 플랫폼을 지원하는 경우 discordNative를 설정합니다.
metadata.json을 편집하세요 - 사용 가능한 모든 필드는 Metadata를 참고하세요.
구성
이름, 작성자, 지원 URL, 카테고리, 색상, 다국어 설명, 그리고 Discord가 이미 해당 플랫폼을 지원하는 경우 discordNative를 설정합니다.
metadata.json을 편집하세요 - 사용 가능한 모든 필드는 Metadata를 참고하세요.
구현
Presence SDK를 사용해 프레즌스 로직을 작성합니다.
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,
})
})구현
Presence SDK를 사용해 프레즌스 로직을 작성합니다.
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,
})
})검증
메타데이터 구조가 올바르고 에셋이 준비되어 있는지 확인합니다.
nowly validate검증
메타데이터 구조가 올바르고 에셋이 준비되어 있는지 확인합니다.
nowly validate빌드
프레즌스를 독립된 번들로 컴파일합니다.
nowly build example빌드
프레즌스를 독립된 번들로 컴파일합니다.
nowly build example로드
빌드한 프레즌스를 브라우저에 설치합니다. 두 가지 방법: 미리 빌드된 확장 프로그램 또는 zip 드롭.
전체 비교는 로컬에서 로드 및 테스트를 참고하세요.
처음인 경우(브라우저에 Nowly가 없음): 프레즌스를 완성된 확장 프로그램에 포함시킵니다.
nowly extension examplechrome://extensions에서 dist/extension-dev를 압축 해제된 확장 프로그램으로 로드하세요.
이미 Nowly가 압축 해제된 상태로 로드되어 있는 경우: zip으로 패키징하고 설정 → 고급 → 디버그에 드롭하세요. 스토어 설치는 서명되지 않은 zip을 거부합니다.
nowly pack example로드
빌드한 프레즌스를 브라우저에 설치합니다. 두 가지 방법: 미리 빌드된 확장 프로그램 또는 zip 드롭.
전체 비교는 로컬에서 로드 및 테스트를 참고하세요.
처음인 경우(브라우저에 Nowly가 없음): 프레즌스를 완성된 확장 프로그램에 포함시킵니다.
nowly extension examplechrome://extensions에서 dist/extension-dev를 압축 해제된 확장 프로그램으로 로드하세요.
이미 Nowly가 압축 해제된 상태로 로드되어 있는 경우: zip으로 패키징하고 설정 → 고급 → 디버그에 드롭하세요. 스토어 설치는 서명되지 않은 zip을 거부합니다.
nowly pack example테스트
대상 웹사이트를 열면 프레즌스가 자동으로 활성화됩니다.
사이트를 방문하세요
테스트
대상 웹사이트를 열면 프레즌스가 자동으로 활성화됩니다.
사이트를 방문하세요
코드를 변경할 때마다 구현 → 빌드 → 로드를 반복하세요.