# 앱 구성 API

## iOS용 configureApplication

앱의 iOS 플랫폼을 구성합니다.

`POST` `https://api.pushwoosh.com/json/1.3/configureApplication`


#### 요청 본문

| 이름 | 유형 | 설명 |
| -------------------------- | ------- |--------------------------------------------------|
| auth | string | Pushwoosh 제어판의 [API 액세스 토큰](/ko/developer/api-reference/api-identifiers/#api-access-token) |
| application | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) |
| device\_type | integer | iOS의 경우 1이어야 합니다 |
| ios\_key\_management\_type | string | "manual" |
| ios\_key\_file | string | Base64로 인코딩된 iOS 키 파일 콘텐츠 |
| ios\_key\_password | string | iOS 키 파일의 비밀번호 |
| ios\_gateway | integer | 샌드박스는 "0", 프로덕션은 "1" |
| ios\_framework | string | 가능한 값: "native", "cordova", "titanium" |


<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "providers": {
      "ios": true,
      "amazon": false,
      "android": false,
      "baidu_android": false,
      "chrome": false,
      "email": false,
      "firefox": false,
      "huawei_android": false,
      "internet_explorer": false,
      "osx": false,
      "safari": false,
      "sms": false,
      "web": false,
      "whats_app": false,
      "windows": false
    }
  }
}
```
</TabItem>
</Tabs>


```json title="예시"
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H",      // 필수. Pushwoosh 제어판의 API 액세스 토큰
    "application": "XXXXX-XXXXX",        // 필수. Pushwoosh 애플리케이션 코드
    "device_type": 1,                    // 필수. iOS의 경우 1
    "ios_key_management_type": "manual", // 필수. "manual"
    "ios_key_file": "MIIMY...BAQ==",     // 필수. base64로 인코딩된 iOS 키 파일 콘텐츠
    "ios_key_password": "password",      // 필수.
    "ios_gateway": 1,                    // 필수. "0" (샌드박스) | "1" (프로덕션)
    "ios_framework": "native"            // 필수. 가능한 값: "native", "cordova", "titanium",
                                         //           "marmalade", "adobeAir", "corona", "xamarin",
                                         //           "phoneGapBuild", "triggerIO", "unity"
  }
}


```

## Android용 configureApplication

앱의 Android 플랫폼을 구성합니다.

`POST` `https://api.pushwoosh.com/json/1.3/configureApplication`


#### 요청 본문

| 이름 | 유형 | 설명 |
| ---------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| auth\* | string | Pushwoosh 제어판의 [API 액세스 토큰](/ko/developer/api-reference/api-identifiers/#api-access-token)입니다. |
| application\* | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) |
| device\_type\* | integer | Android의 경우 3이어야 합니다. |
| android\_framework\* | string | Android 프레임워크. 가능한 값: native, cordova, marmalade, adobeAir, corona, xamarin, phoneGapBuild, triggerIO, titanium, unity. |
| android\_fcm\_service\_account\* | object | FCM 서비스 계정 키 (Firebase 프로젝트 설정에서 생성된 JSON 파일). |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "providers": {
      "ios": false,
      "amazon": false,
      "android": true,
      "baidu_android": false,
      "chrome": false,
      "email": false,
      "firefox": false,
      "huawei_android": false,
      "internet_explorer": false,
      "osx": false,
      "safari": false,
      "sms": false,
      "web": false,
      "whats_app": false,
      "windows": false
    }
  }
}
```
</TabItem>
</Tabs>



<Tabs>
<TabItem label="Example">
```json
{
  "request": {
    "auth": "Z2PLR....IRwTqHwCr",
    "application": "87E33-XXXXX",
    "device_type": 3,
    "android_fcm_service_account": {
      "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
      "auth_uri": "https://accounts.google.com/o/oauth2/auth",
      "client_email": "****@foobar.iam.gserviceaccount.com",
      "client_id": "115********6584854983",
      "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-zffgu%40foobar.iam.gserviceaccount.com",
      "private_key": "-----BEGIN PRIVATE KEY-----\nuH/OU/fIL+i6Wm8as...\n-----END PRIVATE KEY-----\n",
      "private_key_id": "e3749********6d9",
      "project_id": "app-android",
      "token_uri": "https://oauth2.googleapis.com/token",
      "type": "service_account",
      "universe_domain": "googleapis.com"
    },
    "android_framework": "native"
  }
}

```
</TabItem>
</Tabs>

## Mac OS X용 configureApplication

앱의 Mac OS X 플랫폼을 구성합니다.

`POST` `https://api.pushwoosh.com/json/1.3/configureApplication`


#### 요청 본문

| 이름 | 유형 | 설명 |
| -------------------------------------------------------------- | ------- | --------------------------------------------------- |
| auth\* | string | Pushwoosh 제어판의 [API 액세스 토큰](/ko/developer/api-reference/api-identifiers/#api-access-token)입니다. |
| application\* | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) |
| device\_type\* | integer | Mac OS X의 경우 7이어야 합니다. |
| macos\_key\_management\_type\* | string | 현재 "manual" 유형만 사용할 수 있습니다. |
| macos\_cert\_file | string | Base64로 인코딩된 Mac OS X 인증서 파일 콘텐츠입니다. |
| macos\_key\_file | string | Base64로 인코딩된 Mac OS X 키 파일 콘텐츠입니다. |
| macos\_key\_password | string | 키 파일 비밀번호입니다. |
| macos\_gateway\* | integer | 푸시 게이트웨이. 샌드박스는 "0", 프로덕션은 "1"입니다. |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "providers": {
      "ios": false,
      "amazon": false,
      "android": false,
      "baidu_android": false,
      "chrome": false,
      "email": false,
      "firefox": false,
      "huawei_android": false,
      "internet_explorer": false,
      "osx": true,
      "safari": false,
      "sms": false,
      "web": false,
      "whats_app": false,
      "windows": false
    }
  }
}
```
</TabItem>
</Tabs>



```json title="예시"
{
  "request":{
    "auth": "yxoPUlwqm…………pIyEX4H",                   // 필수. Pushwoosh 제어판의 API 액세스 토큰
    "application": "XXXXX-XXXXX",                     // 필수. Pushwoosh 애플리케이션 코드
    "device_type": 7,                                 // 필수. Mac OS X의 경우 7
    "macos_key_management_type": "manual",            // 필수. "manual" 
    "macos_cert_file": "iVBORw0KGgoAAAANSUhEUgAABB…", // 선택 사항. Base64로 인코딩된 Mac OS X 인증서 파일의 콘텐츠 
    "macos_key_file": "iVBORw0KGgoAAAANSUhEUgAABB…",  // 선택 사항. Base64로 인코딩된 Mac OS X 키 파일의 콘텐츠 
    "macos_key_password": "PASSWORD",                 // 선택 사항. 키 파일 비밀번호 
    "macos_gateway": 1                                // 필수. 푸시 게이트웨이. 샌드박스는 "0", 프로덕션은 "1" 
  }
}
```

## Windows용 configureApplication

앱의 Windows 플랫폼을 구성합니다.

`POST` `https://api.pushwoosh.com/json/1.3/configureApplication`


#### 요청 본문

| 이름 | 유형 | 설명 |
| ---------------------------------------------- | ------- | ------------------------------------------------------------------------------------- |
| auth\* | string | Pushwoosh 제어판의 [API 액세스 토큰](/ko/developer/api-reference/api-identifiers/#api-access-token)입니다. |
| application\* | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) |
| device\_type\* | integer | Windows의 경우 8이어야 합니다. |
| wns\_psid\* | string | 앱의 Windows Store에서 가져온 패키지 보안 식별자입니다. "ms-app://"로 시작합니다. |
| wns\_secret\* | string | 앱의 Windows Store에서 가져온 클라이언트 시크릿입니다. |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "providers": {
      "ios": false,
      "amazon": false,
      "android": false,
      "baidu_android": false,
      "chrome": false,
      "email": false,
      "firefox": false,
      "huawei_android": false,
      "internet_explorer": false,
      "osx": false,
      "safari": false,
      "sms": false,
      "web": false,
      "whats_app": false,
      "windows": true
    }
  }
}
```
</TabItem>
</Tabs>



```json title="예시"
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H",  // 필수. Pushwoosh 제어판의 API 액세스 토큰
    "application": "XXXXX-XXXXX",    // 필수. Pushwoosh 애플리케이션 코드
    "device_type": 8,                // 필수. Windows의 경우 8
    "wns_psid": "ms-app://…",        // 필수. Windows Store에서 가져온 앱의 패키지 보안 식별자
    "wns_secret": "CLIENT_SECRET"    // 필수. Windows 클라이언트 시크릿 
  }
}


```

## Amazon용 configureApplication

앱의 Amazon 플랫폼을 구성합니다.

`POST` `https://api.pushwoosh.com/json/1.3/configureApplication`


#### 요청 본문

| 이름 | 유형 | 설명 |
| ------------------------------------------------ | ------- | -------------------------------------------------------------- |
| auth\* | string | Pushwoosh 제어판의 [API 액세스 토큰](/ko/developer/api-reference/api-identifiers/#api-access-token)입니다. |
| application\* | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) |
| device\_type\* | integer | Amazon의 경우 9여야 합니다. |
| adm\_cid\* | string | Amazon 클라이언트 ID입니다. |
| adm\_secret\* | string | Amazon 클라이언트 시크릿입니다. |
| adm\_framework\* | string | Amazon 프레임워크. 가능한 값: _native, unity, adobeAir._ |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "providers": {
      "ios": false,
      "amazon": true,
      "android": false,
      "baidu_android": false,
      "chrome": false,
      "email": false,
      "firefox": false,
      "huawei_android": false,
      "internet_explorer": false,
      "osx": false,
      "safari": false,
      "sms": false,
      "web": false,
      "whats_app": false,
      "windows": false
    }
  }
}
```
</TabItem>
</Tabs>



```json title="예시"
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H",  // 필수. Pushwoosh 제어판의 API 액세스 토큰
    "application": "XXXXX-XXXXX",    // 필수. Pushwoosh 애플리케이션 코드
    "device_type": 9,                // 필수. Amazon의 경우 9
    "adm_cid": "CLIENT_ID",          // 필수. Amazon 클라이언트 ID
    "adm_secret": "CLIENT_SECRET",   // 필수. Amazon 클라이언트 시크릿
    "adm_framework": "native"        // 필수. 가능한 값: native, unity, adobeAir. 
  }
}
```

## Chrome용 configureApplication

앱의 Chrome 플랫폼을 구성합니다.

`POST` `https://api.pushwoosh.com/json/1.3/configureApplication`


#### 요청 본문

| 이름 | 유형 | 설명 | 필수 |
|------------------------------|---------|-----------------------------------------------------------------------------------------------------|----------|
| auth* | string | Pushwoosh 제어판의 [API 액세스 토큰](/ko/developer/api-reference/api-identifiers/#api-access-token)입니다. | 필수 |
| application* | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) | 필수 |
| device_type* | integer | Chrome의 경우 11이어야 합니다. | 필수 |
| chrome_fcm_service_account* | object | FCM 서비스 계정 키 (Firebase 프로젝트 설정에서 생성된 JSON 파일). | 필수 |
| chrome_vapid_key* | string | Chrome에서 푸시 알림 인증에 사용되는 공개 VAPID (Voluntary Application Server Identification) 키입니다. | 필수 |
| chrome_vapid_private_key* | string | Chrome에서 푸시 알림을 서명하고 보내는 데 사용되는 비공개 VAPID 키입니다. | 필수 |


```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "providers": {
      "ios": false,
      "amazon": false,
      "android": false,
      "baidu_android": false,
      "chrome": true,
      "email": false,
      "firefox": false,
      "huawei_android": false,
      "internet_explorer": false,
      "osx": false,
      "safari": false,
      "sms": false,
      "web": false,
      "whats_app": false,
      "windows": false
    }
  }
}
```



<Tabs>
<TabItem label="Example">
```json
{
  "request": {
    "auth": "Z2PLR....IRwTqHwCr",
    "application": "87E33-XXXXX",
    "device_type": 11,
    "chrome_fcm_service_account": {
      "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
      "auth_uri": "https://accounts.google.com/o/oauth2/auth",
      "client_email": "****@foobar.iam.gserviceaccount.com",
      "client_id": "11529......6584854983",
      "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/****foobar.iam.gserviceaccount.com",
      "private_key": "-----BEGIN PRIVATE KEY-----\nuH/OU/fIm8as...\n-----END PRIVATE KEY-----\n",
      "private_key_id": "e3749......e66d9",
      "project_id": "app-chrome",
      "token_uri": "https://oauth2.googleapis.com/token",
      "type": "service_account",
      "universe_domain": "googleapis.com"
    },
    "chrome_vapid_key": "BEr....KPqQvCbU",
    "chrome_vapid_private_key": "ee....flOqmSo"
  }
}

```
</TabItem>
</Tabs>

## Safari용 configureApplication

앱의 Safari 플랫폼을 구성합니다.

`POST` `https://api.pushwoosh.com/json/1.3/configureApplication`


#### 요청 본문

| 이름 | 유형 | 설명 |
| --------------------------------------------------------------- | ------- |-------------------------------------------------|
| auth\* | string | Pushwoosh 제어판의 [API 액세스 토큰](/ko/developer/api-reference/api-identifiers/#api-access-token)입니다. |
| application\* | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) |
| device\_type\* | integer | Safari의 경우 10이어야 합니다. |
| safari\_key\_management\_type\* | string | 현재 "manual" 유형만 사용할 수 있습니다. |
| safari\_website\_name | string | 웹사이트 이름입니다. |
| safari\_allowed\_domains | array | 예: https://site1.com", https://site2.com" |
| safari\_url\_template\* | string | "https://%@" 형식의 Safari URL 템플릿입니다. |
| safari\_icon\_file | string | Base64로 인코딩된 256x256px png 파일의 콘텐츠입니다. |
| safari\_key\_file\* | string | Base64로 인코딩된 Safari .p12 키 파일 콘텐츠입니다. |
| safari\_key\_password | string | 키 파일의 비밀번호입니다. |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "providers": {
      "ios": false,
      "amazon": false,
      "android": false,
      "baidu_android": false,
      "chrome": false,
      "email": false,
      "firefox": false,
      "huawei_android": false,
      "internet_explorer": false,
      "osx": false,
      "safari": true,
      "sms": false,
      "web": false,
      "whats_app": false,
      "windows": false
    }
  }
}
```
</TabItem>
</Tabs>



```json title="예시"
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H",                    // 필수. Pushwoosh 제어판의 API 액세스 토큰
    "application": "XXXXX-XXXXX",                      // 필수. Pushwoosh 애플리케이션 코드
    "device_type": 10,                                 // 필수. Safari의 경우 10
    "safari_key_management_type": "manual",            // 필수. "manual"
    "safari_website_name": "WEBSITE_NAME",             // 선택 사항.
    "safari_allowed_domains": [                        // 선택 사항.
      "https://site1.com",
      "https://site2.com"
    ],
    "safari_url_template": "https://%@",               // 필수.
    "safari_icon_file": "iVBORw0KGgoAAAANSUhEUgAABB…", // 선택 사항. Base64로 인코딩된 256x256px png 파일의 콘텐츠
    "safari_key_file": "MIIMY...BAQ==",                // 필수. base64로 인코딩된 Safari .p12 키 파일 콘텐츠
    "safari_key_password": "PASSWORD"                  // 선택 사항. 위 키 파일의 비밀번호  
  }
}


```

## Firefox용 configureApplication

앱의 Firefox 플랫폼을 구성합니다.

`POST` `https://api.pushwoosh.com/json/1.3/configureApplication`


#### 요청 본문

| 이름 | 유형 | 설명 | 필수 |
|-------------------------------|---------|-------------------------------------------------------------------------------------------------------|----------|
| auth* | string | Pushwoosh 제어판의 [API 액세스 토큰](/ko/developer/api-reference/api-identifiers/#api-access-token)입니다. | 필수 |
| application* | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) | 필수 |
| device_type* | integer | Firefox의 경우 12여야 합니다. | 필수 |
| firefox_is_enabled | boolean | Firefox에 대한 푸시 알림을 활성화합니다. | 선택 사항 |
| firefox_fcm_service_account* | object | Firebase 프로젝트 설정에서 생성된 JSON입니다. | 필수 |
| firefox_vapid_key* | string | Firefox에서 푸시 알림 인증에 사용되는 공개 VAPID (Voluntary Application Server Identification) 키입니다. | 필수 |
| firefox_vapid_private_key* | string | Firefox에서 푸시 알림을 서명하고 보내는 데 사용되는 비공개 VAPID 키입니다. | 필수 |


<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "providers": {
      "ios": false,
      "amazon": false,
      "android": false,
      "baidu_android": false,
      "chrome": false,
      "email": false,
      "firefox": true,
      "huawei_android": false,
      "internet_explorer": false,
      "osx": false,
      "safari": false,
      "sms": false,
      "web": false,
      "whats_app": false,
      "windows": false
    }
  }
}
```
</TabItem>
</Tabs>



<Tabs>
<TabItem label="Example">
```json
{
  "request": {
    "auth": "Z2PLR....IRwTqHwCr",
    "application": "87E33-XXXXX",
    "device_type": 12,
    "firefox_fcm_service_account": {
      "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
      "auth_uri": "https://accounts.google.com/o/oauth2/auth",
      "client_email": "****@foobar.iam.gserviceaccount.com",
      "client_id": "115........6584854983",
      "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/****@foobar.iam.gserviceaccount.com",
      "private_key": "-----BEGIN PRIVATE KEY-----\n****uH/OU/fILL****fMJZ+i6****um8as.....\n-----END PRIVATE KEY-----\n",
      "private_key_id": "e3........8e66d9",
      "project_id": "app-firefox",
      "token_uri": "https://oauth2.googleapis.com/token",
      "type": "service_account",
      "universe_domain": "googleapis.com"
    },
    "firefox_vapid_key": "BEr....KPqQvCbU",
    "firefox_vapid_private_key": "ee....flOqmSo"
  }
}

```
</TabItem>
</Tabs>

## Email용 configureApplication

앱의 Email 플랫폼을 구성합니다.

`POST` `https://api.pushwoosh.com/json/1.3/configureApplication`


#### 요청 본문

| 이름 | 유형 | 설명 |
| ---------------------------------------------------- | ------- | --------------------------------------------------------- |
| auth\* | string | Pushwoosh 제어판의 [API 액세스 토큰](/ko/developer/api-reference/api-identifiers/#api-access-token)입니다. |
| application\* | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) |
| device\_type\* | integer | Email의 경우 14여야 합니다. |
| email\_from\_email\* | string | 보내는 사람 이메일 주소입니다. 유효하고 확인된 주소여야 합니다. |
| email\_from\_name\* | string | 보내는 사람 이름입니다. |
| email\_reply\* | string | 회신할 이메일 주소입니다. 유효하고 확인된 주소여야 합니다. |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "providers": {
      "ios": false,
      "amazon": false,
      "android": false,
      "baidu_android": false,
      "chrome": false,
      "email": true,
      "firefox": false,
      "huawei_android": false,
      "internet_explorer": false,
      "osx": false,
      "safari": false,
      "sms": false,
      "web": false,
      "whats_app": false,
      "windows": false
    }
  }
}
```
</TabItem>
</Tabs>



```json title="예시"
{
  "request":{
    "auth": "yxoPUlwqm…………pIyEX4H",         // 필수. Pushwoosh 제어판의 API 액세스 토큰
    "application": "XXXXX-XXXXX",           // 필수. Pushwoosh 애플리케이션 코드
    "device_type": 14,                      // 필수. 이메일의 경우 14
    "email_from_email": "email@domain.com", // 필수. 이메일 주소는 유효하고 확인되어야 합니다
    "email_from_name": "SENDER_NAME",       // 필수. "보낸 사람" 이메일 필드에 표시할 이름
    "email_reply": "email@domain.com"       // 필수. 회신할 이메일 주소는 유효하고 확인되어야 합니다
  }
}
```