Awesome Message SDK - v0.12.4
    Preparing search index...

    Class PushManagementClient

    푸시 관리 클라이언트

    푸시 태그, UID, 통계, 토큰 관리 기능을 제공합니다. 태그 CRUD, UID-태그 관계 관리, 통계 조회, 토큰 관리 등의 기능을 포함합니다.

    const client = new PushManagementClient({ accessKeyId, secretAccessKey });

    // 태그 생성
    const tag = await client.createTag("client-1", { tagName: "VIP_MEMBER" });

    // 토큰 등록
    await client.createToken("client-1", {
    token: "fcm_device_token...",
    pushType: "FCM",
    uid: "user123"
    });

    // 통계 조회
    const stats = await client.listStats("client-1", {
    eventCategory: "MESSAGE",
    from: "2024-01-01T00:00:00+09:00",
    to: "2024-01-31T23:59:59+09:00"
    });
    Index

    Constructors

    Methods

    • SendOptions에서 HTTP 헤더를 생성합니다

      Parameters

      Returns Record<string, string>

      생성된 헤더 객체

    • GET 요청

      Type Parameters

      • T

      Parameters

      • path: string

        API 경로

      • Optionalheaders: Record<string, string>

        추가 헤더

      Returns Promise<T>

      응답 데이터

    Protectedpost

    • post<T>(
          path: string,
          body?: unknown,
          headers?: Record<string, string>,
      ): Promise<T>

      POST 요청

      Type Parameters

      • T

      Parameters

      • path: string

        API 경로

      • Optionalbody: unknown

        요청 본문

      • Optionalheaders: Record<string, string>

        추가 헤더

      Returns Promise<T>

      응답 데이터

    • FormData를 사용한 POST 요청 (multipart/form-data)

      Type Parameters

      • T

      Parameters

      • path: string

        API 경로

      • formData: FormData

        undici의 FormData 객체

      • Optionalheaders: Record<string, string>

        추가 헤더

      Returns Promise<T>

      응답 데이터

    • PUT 요청

      Type Parameters

      • T

      Parameters

      • path: string

        API 경로

      • Optionalbody: unknown

        요청 본문

      • Optionalheaders: Record<string, string>

        추가 헤더

      Returns Promise<T>

      응답 데이터

    • DELETE 요청

      Type Parameters

      • T

      Parameters

      • path: string

        API 경로

      • Optionalheaders: Record<string, string>

        추가 헤더

      Returns Promise<T>

      응답 데이터

    • DELETE 요청 (body 포함)

      Type Parameters

      • T

      Parameters

      • path: string

        API 경로

      • Optionalbody: unknown

        요청 본문

      • Optionalheaders: Record<string, string>

        추가 헤더

      Returns Promise<T>

      응답 데이터

    • 태그 단건을 조회합니다.

      특정 태그의 상세 정보를 조회합니다.

      Parameters

      • externalId: string

        클라이언트 연동 ID

      • tagId: string

        태그 ID

      Returns Promise<GetPushTagResponse>

      태그 상세 정보

      InvalidParameterException 요청 데이터가 유효하지 않은 경우

      AccessDeniedException API 호출 권한이 없는 경우

      NotFoundException 해당 태그를 찾을 수 없는 경우

      InternalServerErrorException 서버 오류가 발생한 경우

      const result = await client.getTag("client-1", "tag_abc123");
      // { tag: { tagId: "tag_abc123", tagName: "VIP", createdDateTime } }
    • 태그를 수정합니다.

      태그 이름을 수정합니다.

      Parameters

      • externalId: string

        클라이언트 연동 ID

      • tagId: string

        태그 ID

      • request: UpdatePushTagRequest

        수정할 내용

      Returns Promise<void>

      void

      InvalidParameterException 요청 데이터가 유효하지 않은 경우

      AccessDeniedException API 호출 권한이 없는 경우

      NotFoundException 해당 태그를 찾을 수 없는 경우

      InternalServerErrorException 서버 오류가 발생한 경우

      await client.updateTag("client-1", "tag_abc123", { tagName: "PREMIUM_VIP" });
      
    • 태그를 삭제합니다.

      태그를 삭제합니다. 태그에 연결된 UID 관계도 함께 삭제됩니다.

      Parameters

      • externalId: string

        클라이언트 연동 ID

      • tagId: string

        태그 ID

      Returns Promise<void>

      void

      InvalidParameterException 요청 데이터가 유효하지 않은 경우

      AccessDeniedException API 호출 권한이 없는 경우

      NotFoundException 해당 태그를 찾을 수 없는 경우

      InternalServerErrorException 서버 오류가 발생한 경우

      await client.deleteTag("client-1", "tag_abc123");
      
    • 태그에 속한 UID 목록을 조회합니다.

      특정 태그에 연결된 UID 목록을 조회합니다.

      Parameters

      • externalId: string

        클라이언트 연동 ID

      • tagId: string

        태그 ID

      • Optionalquery: ListPushTagUidsRequest

        조회 조건 (커서 기반 페이지네이션)

      Returns Promise<ListPushTagUidsResponse>

      UID 목록

      InvalidParameterException 요청 데이터가 유효하지 않은 경우

      AccessDeniedException API 호출 권한이 없는 경우

      NotFoundException 해당 태그를 찾을 수 없는 경우

      InternalServerErrorException 서버 오류가 발생한 경우

      const result = await client.listTagUids("client-1", "tag_abc123", {
      offsetUid: "lastUid",
      limit: 100
      });
      // { uids: [{ uid: "user1", tags: [...], contacts: [...] }] }
    • 태그에 UID를 추가합니다.

      태그에 새로운 UID들을 추가합니다. (기존 태그는 유지됨)

      Parameters

      • externalId: string

        클라이언트 연동 ID

      • tagId: string

        태그 ID

      • request: AddPushUidsToTagRequest

        추가할 UID 목록

      Returns Promise<void>

      void

      InvalidParameterException 요청 데이터가 유효하지 않은 경우

      AccessDeniedException API 호출 권한이 없는 경우

      NotFoundException 해당 태그를 찾을 수 없는 경우

      InternalServerErrorException 서버 오류가 발생한 경우

      await client.addUidsToTag("client-1", "tag_abc123", {
      uids: ["user1", "user2", "user3"]
      });
    • 태그에서 UID를 삭제합니다.

      태그에서 특정 UID들의 연결을 해제합니다.

      Parameters

      • externalId: string

        클라이언트 연동 ID

      • tagId: string

        태그 ID

      • uids: string[]

        삭제할 UID 목록

      Returns Promise<void>

      void

      InvalidParameterException 요청 데이터가 유효하지 않은 경우

      AccessDeniedException API 호출 권한이 없는 경우

      NotFoundException 해당 태그를 찾을 수 없는 경우

      InternalServerErrorException 서버 오류가 발생한 경우

      await client.removeUidsFromTag("client-1", "tag_abc123", ["user1", "user2"]);
      
    • UID에 태그를 설정합니다.

      UID의 태그 목록을 새로 설정합니다. (기존 태그는 삭제되고 새 태그로 대체됨)

      Parameters

      Returns Promise<void>

      void

      InvalidParameterException 요청 데이터가 유효하지 않은 경우

      AccessDeniedException API 호출 권한이 없는 경우

      InternalServerErrorException 서버 오류가 발생한 경우

      await client.setTagsToUid("client-1", {
      uid: "user123",
      tagIds: ["tag_abc123", "tag_def456"]
      });
    • UID 정보를 조회합니다.

      특정 UID의 태그 및 Contact 정보를 조회합니다.

      Parameters

      • externalId: string

        클라이언트 연동 ID

      • uid: string

        사용자 ID

      Returns Promise<GetPushUidResponse>

      UID 상세 정보

      InvalidParameterException 요청 데이터가 유효하지 않은 경우

      AccessDeniedException API 호출 권한이 없는 경우

      NotFoundException 해당 UID를 찾을 수 없는 경우

      InternalServerErrorException 서버 오류가 발생한 경우

      const result = await client.getUid("client-1", "user123");
      // { uid: { uid: "user123", tags: [...], contacts: [...] } }
    • UID를 삭제합니다.

      UID와 관련된 모든 태그 연결 및 정보를 삭제합니다.

      Parameters

      • externalId: string

        클라이언트 연동 ID

      • uids: string[]

        삭제할 UID 목록

      Returns Promise<void>

      void

      InvalidParameterException 요청 데이터가 유효하지 않은 경우

      AccessDeniedException API 호출 권한이 없는 경우

      InternalServerErrorException 서버 오류가 발생한 경우

      await client.deleteUids("client-1", ["user1", "user2", "user3"]);
      
    • UID에 태그를 추가합니다.

      사용자에게 태그를 추가합니다. 기존 태그는 유지되며 새 태그가 추가됩니다.

      Parameters

      • externalId: string

        클라이언트 연동 ID

      • uid: string

        사용자 ID

      • data: AddPushUidTagsRequest

        추가할 태그 ID 목록

      Returns Promise<void>

      InvalidParameterException 요청 데이터가 유효하지 않은 경우

      AccessDeniedException API 호출 권한이 없는 경우

      InternalServerErrorException 서버 오류가 발생한 경우

      await client.addUidTags("client-1", "user123", { tagIds: ["VIP", "PREMIUM"] });
      
    • UID의 태그 목록을 조회합니다.

      사용자에게 할당된 태그 ID 목록을 조회합니다.

      Parameters

      • externalId: string

        클라이언트 연동 ID

      • uid: string

        사용자 ID

      Returns Promise<ListPushUidTagsResponse>

      태그 ID 목록

      InvalidParameterException 요청 데이터가 유효하지 않은 경우

      AccessDeniedException API 호출 권한이 없는 경우

      NotFoundException UID를 찾을 수 없는 경우

      InternalServerErrorException 서버 오류가 발생한 경우

      const result = await client.listUidTags("client-1", "user123");
      // { tagIds: ["VIP", "PREMIUM"] }
    • UID의 태그를 수정합니다. (전체 교체)

      사용자의 기존 태그를 모두 삭제하고 새 태그로 교체합니다.

      Parameters

      • externalId: string

        클라이언트 연동 ID

      • uid: string

        사용자 ID

      • data: UpdatePushUidTagsRequest

        새로운 태그 ID 목록

      Returns Promise<void>

      InvalidParameterException 요청 데이터가 유효하지 않은 경우

      AccessDeniedException API 호출 권한이 없는 경우

      InternalServerErrorException 서버 오류가 발생한 경우

      await client.updateUidTags("client-1", "user123", { tagIds: ["NEW_TAG"] });
      
    • UID의 태그를 삭제합니다.

      사용자에게 할당된 특정 태그들을 삭제합니다.

      Parameters

      • externalId: string

        클라이언트 연동 ID

      • uid: string

        사용자 ID

      • tagIds: string[]

        삭제할 태그 ID 목록

      Returns Promise<void>

      InvalidParameterException 요청 데이터가 유효하지 않은 경우

      AccessDeniedException API 호출 권한이 없는 경우

      InternalServerErrorException 서버 오류가 발생한 경우

      await client.deleteUidTags("client-1", "user123", ["VIP", "PREMIUM"]);
      
    • 통계를 조회합니다.

      다양한 이벤트 카테고리의 통계를 조회합니다.

      Parameters

      Returns Promise<ListPushStatsResponse>

      통계 목록

      InvalidParameterException 요청 데이터가 유효하지 않은 경우

      AccessDeniedException API 호출 권한이 없는 경우

      InternalServerErrorException 서버 오류가 발생한 경우

      const result = await client.listStats("client-1", {
      eventCategory: "MESSAGE",
      statisticsType: "NORMAL",
      from: "2024-01-01T00:00:00+09:00",
      to: "2024-01-31T23:59:59+09:00",
      extra1s: ["FCM", "APNS"]
      });
      // { stats: [{ eventDateTime, events: { SENT: 100, RECEIVED: 95 } }] }
    • 토큰을 생성합니다.

      디바이스의 푸시 토큰을 등록합니다. 이미 등록된 토큰인 경우 정보를 업데이트합니다.

      Parameters

      Returns Promise<void>

      InvalidParameterException 요청 데이터가 유효하지 않은 경우

      AccessDeniedException API 호출 권한이 없는 경우

      InternalServerErrorException 서버 오류가 발생한 경우

      await client.createToken("client-1", {
      token: "fcm_device_token...",
      pushType: "FCM",
      uid: "user123",
      isNotificationAgreement: true,
      isAdAgreement: false,
      isNightAdAgreement: false,
      timezoneId: "Asia/Seoul",
      country: "KR",
      language: "ko",
      deviceId: "device123"
      });
    • 토큰을 조회합니다.

      특정 토큰의 상세 정보를 조회합니다.

      Parameters

      • externalId: string

        클라이언트 연동 ID

      • token: string

        조회할 토큰

      Returns Promise<{ token: PushToken }>

      토큰 상세 정보

      InvalidParameterException 요청 데이터가 유효하지 않은 경우

      AccessDeniedException API 호출 권한이 없는 경우

      NotFoundException 토큰을 찾을 수 없는 경우

      InternalServerErrorException 서버 오류가 발생한 경우

      const result = await client.getToken("client-1", "fcm_device_token...");
      // { token: { uid: "user123", token: "fcm...", pushType: "FCM" } }
    • 토큰을 삭제합니다.

      등록된 푸시 토큰을 삭제합니다.

      Parameters

      • externalId: string

        클라이언트 연동 ID

      • token: string

        삭제할 토큰

      Returns Promise<void>

      InvalidParameterException 요청 데이터가 유효하지 않은 경우

      AccessDeniedException API 호출 권한이 없는 경우

      NotFoundException 토큰을 찾을 수 없는 경우

      InternalServerErrorException 서버 오류가 발생한 경우

      await client.deleteToken("client-1", "fcm_device_token...");
      
    • UID로 토큰을 조회합니다.

      특정 사용자 ID에 등록된 토큰 목록을 조회합니다.

      Parameters

      • externalId: string

        클라이언트 연동 ID

      • uid: string

        사용자 ID

      Returns Promise<ListPushTokensByUidResponse>

      토큰 목록

      InvalidParameterException 요청 데이터가 유효하지 않은 경우

      AccessDeniedException API 호출 권한이 없는 경우

      NotFoundException 해당 UID를 찾을 수 없는 경우

      InternalServerErrorException 서버 오류가 발생한 경우

      const result = await client.listTokensByUid("client-1", "user123");
      // { tokens: [{ uid: "user123", token: "fcm...", pushType: "FCM" }] }

    Properties

    API 인증 크레덴셜