본문으로 건너뛰기

확장 프로그램 개발자 API를 사용해 보세요.

이 가이드는 Chastify 확장 프로그램을 구축하거나, iframe 확장 페이지를 호스팅하거나, 자체 백엔드에서 개발자 API를 호출하려는 경우에 사용하십시오.

이 페이지는 출발점입니다. 어떤 모드를 선택해야 할지, 누구에게 먼저 전화를 걸어야 할지, 그리고 그 다음에는 어디로 가야 할지 알려줍니다.

잠금 해제 차단, 정기적으로 필요한 작업, 보상 및 처벌과 같은 구체적인 확장 기능 동작에 대해서는 **확장 기능 API 기능**을 참조하세요.

자신의 잠금장치만 제어하고 싶으신가요?

공개 확장 프로그램을 개발할 필요가 없다면 외부 API 및 프로그램 페이지를 이용하는 것이 가장 쉬운 시작 방법입니다. DEV 토큰을 생성하고 간단한 REST 엔드포인트를 호출하기만 하면 됩니다. 확장 프로그램 설정, iframe, 세션 관리 등이 필요하지 않습니다. 시간 추가/삭제, 시간 고정, 작업, 장치 명령 등을 지원합니다.

이 API는 무엇에 사용되나요?

확장 프로그램 개발자 API를 사용하면 Chastify 잠금 세션 내에서 실행되는 타사 확장 프로그램 환경을 구축할 수 있습니다.

이 제품을 사용하면 다음과 같은 작업을 수행할 수 있습니다.

  • 세션을 읽고 컨텍스트를 잠금합니다(확장 기능의 경우 session.get, 자체 잠금 자동화의 경우 /api/apps/v1/session).
  • 잠금 세션별로 확장 프로그램 소유 데이터를 읽고(state.get) 백엔드에서 해당 데이터를 씁니다(PUT/PATCH /state).
  • 확장 프로그램 소유 이미지 파일은 Chastify에서 관리하는 R2 스토리지(files.*)에 저장합니다.
  • 잠금 카드에 확장 UI 액션 추가(metadata.homeActions)
  • 확장 프로그램 소유 잠금 해제 차단기가 포함된 게이트 잠금 해제 흐름(metadata.unlockBlockers)
  • 신뢰할 수 있는 백엔드에서 트리거 잠금 작업(시간 추가/제거, 잠금/잠금 해제, 설정 변경)을 수행합니다.
  • 트리거 작업 및 위생 조치(task.assign, task.start_timer, task.complete, hygienic_unlock.start)
  • 카운터/주기 지원을 통해 정기적인 작업을 제출하세요.
  • 지원되는 장치 명령이 있으면 전송합니다.
  • 사용자 지정 확장 프로그램 로그 항목을 작성하여 기록을 잠급니다.

만들 수 있는 것들

적절한 기능 세트는 신뢰가 어디에 있는지에 따라 달라집니다.

프런트엔드 전용 iframe 확장 기능을 사용하면 신뢰할 수 있는 잠금 변형이 필요 없는 UI 우선 환경을 구축할 수 있습니다.

  • 확장 프로그램 구성을 수집하는 설정 페이지
  • 세션 컨텍스트를 읽는 대시보드
  • 세션 상태를 읽고 검증된 진행 상황을 백엔드를 통해 전송하는 퍼즐, 체크리스트 또는 게임 UI
  • Chastify에 이미 저장된 확장 파일을 읽는 미디어 기반 흐름
  • 의도를 담아 iframe을 여는 홈 액션 진입점

서버 기반 확장 기능은 백엔드에서 권한 있는 API를 호출하기 전에 결과를 검증하기 때문에 잠금에 영향을 미치는 기능을 구축할 수 있습니다.

  • 잠금 해제 조건이 있는 작업 또는 습관 시스템
  • 일일 또는 주간 요구 사항 및 정해진 시간 미준수 시 벌칙
  • 성공 시 보상이 주어지고 실패 시 불이익이 주어지는 게임 (락 타임 변경 포함)
  • 서버 측 검증 후 잠금 해제 차단 요소를 제거하는 검증 흐름
  • 지원되는 장치 명령을 사용한 장치 제어 보조 흐름
  • iframe 외부에서 확장 프로그램 상태를 유지하는 웹훅/데이터베이스 워크플로

외부 프로그램은 사용자가 직접 설정한 잠금 장치를 개인적으로 자동화하는 데 사용됩니다.

  • 로컬 스크립트
  • 개인 대시보드
  • 사용자 전체가 사용하는 DEV 키를 사용하는 자동화 도구

모드를 선택하세요

다음 모드 중 하나를 선택하세요:

  1. Hosted iframe extension: Cloudflare Pages 또는 유사한 서비스에 정적 iframe UI를 호스팅합니다. 설정, 세션 컨텍스트 및 안전한 읽기에는 브리지를 사용하십시오. 상태 쓰기, 보상, 처벌, 잠금 해제 완료 또는 신뢰 요구 사항 진행 상황에는 이 모드를 단독으로 사용하지 마십시오.
  2. Server-backed extension: iframe UI를 호스팅하고 자체 백엔드를 실행합니다. iframe은 시작 메시지 mainToken를 백엔드로 전송하고, 백엔드는 앱 범위의 개발자 API 키와 x-chastify-main-token를 사용하여 Chastify 확장 API를 호출합니다. 이 모드는 권한이 필요한 작업, 차단 해제, 신뢰할 수 있는 진행 상황 관리, 보상, 처벌, 웹훅 및 외부 데이터베이스에 사용할 수 있습니다.
  3. External API & Programs: 스크립트, 로컬 프로그램 또는 자동화에서 사용자가 활성화한 잠금을 제어하는 ​​경우 사용자 전체에서 사용할 수 있는 DEV 키를 사용하십시오. 이 모드는 타사 사용자가 확장 프로그램을 설치하는 데에는 적합하지 않습니다.

빠른 테스트를 진행하려면 UI 및 안전한 읽기에는 iframe 모드를 사용하는 것이 좋습니다. 상태 쓰기, 신뢰할 수 있는 보상, 시간 변경, 예약된 요구 사항 진행 상황 또는 잠금 해제 차단 완료 기능을 구현하기 전에 백엔드를 추가하십시오.

주의

iframe 코드는 신뢰 경계가 아닙니다. 해시 페이로드와 실행 토큰을 포함하여 iframe에 보이는 모든 것은 사용자가 검사하고 재생할 수 있습니다.

처음 10분 (iframe 모드)

  1. Chastify iframe이 열려 있는 상태에서 location.hash 페이로드를 읽습니다.
  2. session.get에 대한 브리지 요청을 생성합니다.
  3. type: "chastify:ext:resp"ok: true를 사용하여 응답을 확인하십시오.
  4. state.get를 사용하여 테스트 상태를 읽습니다.
  5. UI에서 iframe이 올바르게 작동하도록 자동 크기 조정 및 테마 지원 기능을 추가합니다.

테마 지원은 프로덕션 환경에 적합한 iframe의 일부입니다. Chastify는 실행 해시에 ui 값을 전달하고 iframe이 열려 있는 동안 실시간 테마 업데이트를 전송합니다. 밝은/어두운 테마 예시 및 대비가 안정적인 Tailwind 패턴은 iframe 테마를 참조하세요.

필수 페이로드 값:

  • bridge.nonce
  • bridge.parentOrigin
  • sessionId
  • lockId

브리지 요청 예시:

{
"type": "chastify:ext:req",
"v": 1,
"id": "request-id", // unique id per request
"nonce": "nonce-from-hash",
"action": "session.get",
"payload": {}
}

예시 교량 응답:

{
"type": "chastify:ext:resp",
"v": 1,
"id": "request-id",
"ok": true,
"data": {}
}

먼저 배워야 할 핵심 행동들

  • session.get
  • state.get
    잠금 세션에 대한 확장 프로그램 소유의 JSON 스토리지를 읽습니다. 개발자 API 자격 증명을 사용하여 백엔드에서 상태를 기록합니다.
  • files.capabilities, files.list, files.get 퍼즐 이미지나 생성된 미리보기와 같은 바이너리 미디어에는 파일 저장소 읽기를 사용하십시오. 파일 ID는 백엔드에 기록된 상태로 저장한 다음, files.get를 사용하여 서명된 URL을 새로 고치십시오.
  • metadata.get 잠금 세션 잠금 해제 차단기와 확장 카드 홈 작업/의도를 읽어보세요.
  • regularActions.get

세션 변경(예: 상태 기록, 일반 작업 제출, 런타임 파일 업로드/삭제, 시간 변경, 잠금 해제 차단 업데이트, 작업 완료, 위생 관리 시작 및 장치 명령)은 개발자 API 키를 사용하여 백엔드에서 호출해야 합니다. 브라우저 iframe 코드는 이러한 작업에 사용할 수 없습니다.

전체 API URL (지원됨)

기본 도메인: https://chastify.net

확장 세션 API(/api/extensions/*)

이 경로들은 서로 다른 접근 모드를 가지고 있습니다. /api/extensions/* 인터페이스 전체를 iframe 안전 영역으로 간주하지 마십시오.

안전한 iframe 브리지 경로는 postMessage 브리지 요청 후 Chastify 부모를 통해 라우팅됩니다.

  • GET https://chastify.net/api/extensions/sessions/:sessionId
  • GET https://chastify.net/api/extensions/sessions/:sessionId/state
  • GET https://chastify.net/api/extensions/sessions/:sessionId/metadata
  • GET https://chastify.net/api/extensions/sessions/:sessionId/regular-actions
  • GET https://chastify.net/api/extensions/sessions/:sessionId/files/capabilities
  • GET https://chastify.net/api/extensions/sessions/:sessionId/files
  • GET https://chastify.net/api/extensions/sessions/:sessionId/files/:fileId

백엔드 전용 설치 확장 프로그램 경로에는 앱 범위의 개발자 API 키와 iframe 실행 토큰이 필요합니다.

Authorization: Bearer YOUR_APP_SCOPED_DEVELOPER_KEY
x-chastify-main-token: MAIN_TOKEN_FROM_IFRAME_HASH
정보

이 두 토큰 모델은 백엔드 요청을 확장 프로그램 개발자(Authorization)와 현재 열려 있는 확장 프로그램 세션(x-chastify-main-token) 모두에 연결합니다.

  • PATCH https://chastify.net/api/extensions/sessions/:sessionId/metadata
  • PUT https://chastify.net/api/extensions/sessions/:sessionId/state
  • PATCH https://chastify.net/api/extensions/sessions/:sessionId/state
  • PATCH https://chastify.net/api/extensions/sessions/:sessionId/regular-actions/config
  • POST https://chastify.net/api/extensions/sessions/:sessionId/regular-actions
  • POST https://chastify.net/api/extensions/sessions/:sessionId/files
  • DELETE https://chastify.net/api/extensions/sessions/:sessionId/files/:fileId
  • POST https://chastify.net/api/extensions/sessions/:sessionId/logs/custom
  • POST https://chastify.net/api/extensions/sessions/:sessionId/notifications/custom
  • POST https://chastify.net/api/extensions/sessions/:sessionId/device-command
  • POST https://chastify.net/api/extensions/sessions/:sessionId/action
  • POST https://chastify.net/api/extensions/sessions/:sessionId/requirements/progress

백엔드 토큰 API(/api/apps/v1/*)

Authorization: Bearer <user-wide DEV token>를 사용하십시오. 이러한 엔드포인트는 토큰 소유자의 활성 잠금 세션을 관리하며 외부 API 스크립트/프로그램용으로 설계되었으며, 설치된 타사 확장 프로그램 세션에는 사용할 수 없습니다.

  • GET https://chastify.net/api/apps/v1/session
  • GET https://chastify.net/api/apps/v1/state
  • PUT https://chastify.net/api/apps/v1/state
  • PATCH https://chastify.net/api/apps/v1/state
  • GET https://chastify.net/api/apps/v1/metadata
  • PATCH https://chastify.net/api/apps/v1/metadata
  • POST https://chastify.net/api/apps/v1/action
  • POST https://chastify.net/api/apps/v1/lock/apply-time
  • POST https://chastify.net/api/apps/v1/lock/freeze
  • POST https://chastify.net/api/apps/v1/lock/unfreeze
  • POST https://chastify.net/api/apps/v1/logs/custom

iframe 브리지 명령

브리지 명령 페이로드는 iframe(chastify:ext:req)을 통해 전송되고 부모 iframe(Chastify)을 통해 라우팅됩니다. 이 브리지는 의도적으로 안전한 세션 UI 작업으로 제한됩니다.

  • session.get -> GET https://chastify.net/api/extensions/sessions/:sessionId
  • state.get -> GET https://chastify.net/api/extensions/sessions/:sessionId/state
  • files.capabilities -> GET https://chastify.net/api/extensions/sessions/:sessionId/files/capabilities
  • files.list -> GET https://chastify.net/api/extensions/sessions/:sessionId/files
  • files.get -> GET https://chastify.net/api/extensions/sessions/:sessionId/files/:fileId{ "fileId": "file_record_id" }
  • metadata.get -> GET https://chastify.net/api/extensions/sessions/:sessionId/metadata
  • regularActions.get -> GET https://chastify.net/api/extensions/sessions/:sessionId/regular-actions

세션 변경 엔드포인트는 iframe 브리지 명령이 아닌 백엔드 API를 직접 호출하는 방식입니다. 이는 상태 기록, 일반적인 작업 제출, 런타임 파일 업로드/삭제를 포함하며, iframe 코드는 사용자가 제어할 수 있기 때문입니다.

백엔드 세션 API 예제

백엔드는 설치된 확장 프로그램의 권한 있는 호출을 위해 두 헤더를 모두 전송해야 합니다.

Authorization: Bearer YOUR_APP_SCOPED_DEVELOPER_KEY
x-chastify-main-token: MAIN_TOKEN_FROM_IFRAME_HASH

백엔드 작업 예시:

  • metadata.patch -> PATCH /api/extensions/sessions/:sessionId/metadata
  • regularActions.submit -> POST /api/extensions/sessions/:sessionId/regular-actions
  • files.upload -> POST /api/extensions/sessions/:sessionId/files
  • files.delete -> DELETE /api/extensions/sessions/:sessionId/files/:fileId
  • lock.applyTime -> POST /api/extensions/sessions/:sessionId/action{ "name": "add_time", "params": <deltaSeconds> }
  • lock.freeze -> POST /api/extensions/sessions/:sessionId/action{ "name": "freeze", "params": { "durationSeconds": 900 } }
  • lock.unfreeze -> POST /api/extensions/sessions/:sessionId/action{ "name": "unfreeze", "params": {} }
  • lock.settings.patch -> POST /api/extensions/sessions/:sessionId/action{ "name": "settings.patch", "params": { ... } }
  • task.assign -> POST /api/extensions/sessions/:sessionId/action
  • task.start_timer -> POST /api/extensions/sessions/:sessionId/action{ "name": "task.start_timer", "params": {} }
  • task.complete -> POST /api/extensions/sessions/:sessionId/action{ "name": "task.complete", "params": { "successful": true } }
  • hygienic_unlock.start -> POST /api/extensions/sessions/:sessionId/action{ "name": "hygienic_unlock.start", "params": { "durationSeconds": 900 } }
  • pillory.end -> POST /api/extensions/sessions/:sessionId/action{ "name": "pillory.end", "params": {} }
  • device.command -> POST /api/extensions/sessions/:sessionId/device-command
  • logs.custom -> POST /api/extensions/sessions/:sessionId/logs/custom
  • notifications.custom -> POST /api/extensions/sessions/:sessionId/notifications/custom
  • requirements.progress -> POST /api/extensions/sessions/:sessionId/requirements/progress

토큰, 범위, 해지 및 감사 동작

올바른 신뢰 경계에 맞는 토큰을 사용하십시오.

경고

개발자 API 키는 기밀 정보입니다. 브라우저 코드에 노출된 경우 즉시 취소하고 백엔드 환경 변수를 주기적으로 변경해야 합니다.

iframe 시작 토큰(mainToken)

  • 사용자가 설치된 확장 프로그램 페이지를 열 때 iframe 해시에 포함되어 전달됩니다.
  • 의도적으로 브라우저에 표시되도록 설계되었습니다. 이는 열려 있는 확장 프로그램 세션을 식별하는 데 사용되지만 백엔드 비밀 키는 아닙니다.
  • 지속 시간이 짧습니다. 현재 실행 토큰은 10시간 후에 만료됩니다. 확장 프로그램 페이지를 다시 열어 갱신하세요.
  • 백엔드에서 설치된 확장 프로그램 세션 경로를 호출할 때 x-chastify-main-token가 필요하며, 이를 통해 Chastify는 백엔드 요청을 확장 프로그램을 연 사용자/세션에 연결할 수 있습니다.
  • 이 기능은 시간 변경, 잠금 해제 차단 완료, 작업 완료, 장치 명령, 런타임 업로드/삭제, 사용자 지정 로그 또는 사용자 지정 알림을 승인하는 데 단독으로 사용해서는 안 됩니다.

앱 범위 개발자 API 키

  • 하나의 확장 앱 개발자 UI에서 생성되었습니다.
  • 백엔드 전용 비밀 키입니다. iframe JavaScript, 모바일 앱 번들, 정적 호스팅 설정 또는 브라우저에서 읽을 수 있는 로그에 절대 넣지 마세요.
  • Authorization: Bearer YOUR_APP_SCOPED_DEVELOPER_KEYx-chastify-main-token와 함께 사용됩니다.
  • 설치된 확장 프로그램 세션 API는 확장 프로그램 앱 및 시작 토큰과 일치하는 세션에 대해서만 호출할 수 있습니다.
  • 자동으로 만료되지 않습니다. 노출된 경우 즉시 취소하고 백엔드 환경 변수를 주기적으로 변경하십시오.

사용자 전체 개발자 API 키

  • 개발자 UI에서 확장 앱을 선택하지 않고 생성했습니다.
  • /api/apps/v1/*에 대한 백엔드 전용 비밀 키입니다.
  • 키 소유자의 현재/향후 활성 잠금 세션을 제어합니다.
  • 설치된 타사 확장 프로그램의 백엔드 자격 증명으로 사용할 수 없습니다.

폐지

  • 취소된 개발자 API 키는 더 이상 새로운 요청을 승인하지 않습니다.
  • 취소된 키는 개발자 UI에서 영구적으로 삭제할 수 있습니다.
  • 새로운 iframe 실행 시에는 새로운 실행 토큰이 할당됩니다. mainToken를 장기적인 자격 증명으로 저장하지 마십시오.

범위 및 역할

  • 확장 프로그램 앱 범위는 앱이 요청할 수 있는 내용을 설명합니다.
  • 안전한 iframe 브리지 호출은 UI 부트스트랩, 세션 읽기, 확장 프로그램 소유 상태, 메타데이터 읽기, 일반 작업 읽기 및 파일 읽기로 제한됩니다.
  • 권한이 있는 설치 세션 변경에는 확장 프로그램의 범위가 일치하는 경우에도 백엔드 자격 증명이 필요합니다.
  • 역할에 따라 달라지는 작업은 실행 권한이 착용자 또는 키 소지자에게 있는지 여부에 따라 거부될 수 있습니다.

감사 및 한도

  • 개발자 API 키의 마지막 사용 메타데이터는 키가 사용될 때 업데이트됩니다.
  • 권한이 필요한 작업 경로는 속도 제한이 있으며, 잘못된 자격 증명 유형을 사용할 경우 server_credentials_required 또는 user_wide_dev_key_required와 같은 명확한 오류를 반환합니다.
  • 사용자 지정 로그는 표시되는 잠금 기록 항목을 기록합니다.
  • 사용자 지정 알림은 요청된 대상에 대해 Chastify 알림을 생성합니다.
  • 모든 권한 확장 변경에 대한 완벽한 감사 범위는 운영 환경 강화 항목으로 추적됩니다.

지원되는 명령 값

/api/extensions/sessions/:sessionId/action/api/apps/v1/action

name는 다음을 지원합니다:

  • add_time
  • remove_time
  • freeze
  • pillory
  • unfreeze
  • toggle_freeze
  • settings.patch
  • task.assign
  • task.start_timer
  • task.complete
  • hygienic_unlock.start
  • pillory.end

행동 제약 조건:

  • 작업 기능을 사용하려면 잠금 장치에 작업 확장/모듈이 활성화되어 있어야 합니다.
  • hygienic_unlock.start는 위생적 개방 기능이 활성화되어 있고 활성 위생 세션이 없어야 합니다.

session.get 잠금 데이터 도우미

session.get / GET /api/apps/v1/session에는 런타임에 사용하기 편리한 부울, 숫자 및 문자열을 규칙 엔진에 제공하는 lockData도 포함되어 있습니다.

예시:

  • 부울 값: frozen, unlockable, trusted, taskAssigned (TaskRun가 이미 열려 있는 경우 true)
  • 숫자: timeLockedSeconds, timeRemainingSeconds, maxTimeRemainingSeconds, taskPoints
  • 문자열: lockTitle, 착용자/열쇠 소지자 프로필 필드

은둔:

  • 사용자가 온라인 상태를 비활성화했을 때(showOnlineStatus === false) wearerLastSeenTimestampkeyholderLastSeenTimestampnull가 됩니다.

장치 명령

확장 세션은 세션 기반 엔드포인트를 사용할 수 있습니다.

POST /api/extensions/sessions/:sessionId/device-command

DEV 토큰을 가진 외부 프로그램은 더 간단한 v1 엔드포인트(세션 ID 필요 없음)를 사용할 수 있습니다.

POST /api/apps/v1/device-command

두 API 모두 동일한 요청 본문을 허용하고 동일한 응답을 반환합니다. 자세한 내용은 외부 API 및 프로그램을 참조하십시오.

확장 프로그램에 설정/구성 UI가 있는 경우:

  1. 부모는 chastify:ext:setup:init(저장된 구성 + 컨텍스트)를 보냅니다.
  2. 설정된 iframe이 chastify:ext:setup:config로 업데이트를 반환합니다.
  3. 부모는 chastify:ext:setup:get_config를 사용하여 현재 구성을 요청할 수 있습니다.

백엔드 토큰 흐름 (서버 측 호출이 필요한 경우)

간단한 스크립트 및 외부 프로그램의 경우 개발자 API 페이지에서 사용자 전체에 적용되는 DEV 토큰을 사용하십시오. 외부 API 및 프로그램을 참조하십시오.

확장 프로그램 iframe 모드의 기본 흐름:

  1. Chastify는 활성 확장 프로그램 세션에 대해 브라우저에 표시되는 단기 실행 토큰을 발급합니다.
  2. 런치 토큰은 iframe 해시 페이로드에 mainToken 형식으로 포함되어 있습니다.
  3. iframe이 mainToken를 백엔드로 전달합니다.
  4. 백엔드에서 https://chastify.net/api/extensions/sessions/:sessionId/*Authorization: Bearer <app-scoped Developer API key>x-chastify-main-token: <mainToken>로 호출합니다.

개발자 API 키를 iframe/브라우저 코드에 전송하지 마십시오. mainToken는 열린 확장 프로그램 세션을 식별하는 데 사용되며, 백엔드 비밀 키가 아니므로 단독으로 권한 있는 작업에 사용할 수 없습니다.

수동 대체:

  • 자사 UI에서 iframe 시작 토큰을 명시적으로 가져오거나 변경해야 하는 경우 GET https://chastify.net/api/extensions/sessions/:sessionId/auth를 호출하세요.

Chastify 페이지가 열려 있지 않은 동안 예약된 작업, 웹훅 또는 자동화가 필요한 경우 백엔드 모드를 사용하십시오. 현재 설치된 확장 프로그램 세션 변경에는 여전히 유효한 10시간 iframe 실행 토큰이 필요하므로, 백그라운드 실행을 위해 설계된 자체 서버 흐름을 사용하지 않는 한, 무인 작업은 보류 중인 증명을 저장하고 다음 유효한 실행 시 제출해야 합니다.

정보

완전 무인 운영 환경을 위해서는 내장/자사 서버 흐름을 사용하거나 명시적인 백그라운드 확장 권한 부여를 기다리는 것이 좋습니다. 앱 범위 세션 API는 현재 시작 토큰에 종속됩니다.

백엔드 vs 클라우드플레어 페이지(서버 없음)

Cloudflare Pages(백엔드 서버 없음)를 다음과 같은 경우에 사용하세요:

  • 가장 쉽고 저렴한 설정(무료 호스팅 가능)을 원하시나요?
  • 사용자가 확장 프로그램 페이지에 활발하게 머물러 있는 동안에만 UI 기반 작업이 필요합니다.
  • 서버에 확장 프로그램 상태를 저장하는 기능은 필요하지 않습니다.
  • 프로토타입을 제작하거나 경량 확장 기능을 빠르게 구축하고 있습니다.

로컬 테스트 예시(PowerShell):

cloudflared tunnel --url http://localhost:5174

테스트 시 생성된 공개 URL을 iframe URL로 사용하십시오.

다음과 같은 경우 백엔드 서버를 사용하십시오.

  • 예약 실행 작업(cron과 유사한 동작)이 필요합니다.
  • 웹훅이나 외부 통합 기능이 필요합니다.
  • 확장 프로그램 페이지에 아무도 없을 때 자동화/백그라운드 처리가 필요합니다.
  • 지속적으로 실행되어야 하는 서버 제어 워크플로우가 필요합니다.

백엔드가 없을 경우 중요한 제약 사항:

  • 백그라운드에서 실행되지 않습니다. 확장 프로그램은 사용자가 확장 프로그램 iframe을 열어놓고 상호 작용하는 동안에만 작업을 수행할 수 있습니다.

일반적인 문제점

  • 403 extension_not_enabled: 이 잠금 장치에 대해 확장 기능이 활성화되어 있지 않습니다.
  • 409 lock_ended: 잠금이 더 이상 활성화되지 않았습니다.
  • 429: 요청 제한에 도달했습니다.
  • iframe에서 응답이 없습니다. nonce, targetOrigin(parentOrigin) 및 허용된 출처를 확인하십시오.

다음 가이드