# 应用程序配置 API

## configureApplication (适用于 iOS)

为应用程序配置 iOS 平台。

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


#### 请求正文

| 名称 | 类型 | 描述 |
| -------------------------- | ------- |--------------------------------------------------|
| auth | string | 来自 Pushwoosh 控制面板的 [API access token](/zh/developer/api-reference/api-identifiers/#api-access-token) |
| application | string | [Pushwoosh application code](/zh/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 access token
    "application": "XXXXX-XXXXX",        // 必需。Pushwoosh application code
    "device_type": 1,                    // 必需。1 代表 iOS
    "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"
  }
}


```

## configureApplication (适用于 Android)

为应用程序配置 Android 平台。

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


#### 请求正文

| 名称 | 类型 | 描述 |
| ---------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| auth\* | string | 来自您的 Pushwoosh 控制面板的 [API access token](/zh/developer/api-reference/api-identifiers/#api-access-token)。 |
| application\* | string | [Pushwoosh application code](/zh/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="示例">
```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>

## configureApplication (适用于 Mac OS X)

为应用程序配置 Mac OS X 平台。

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


#### 请求正文

| 名称 | 类型 | 描述 |
| -------------------------------------------------------------- | ------- | --------------------------------------------------- |
| auth\* | string | 来自 Pushwoosh 控制面板的 [API access token](/zh/developer/api-reference/api-identifiers/#api-access-token)。 |
| application\* | string | [Pushwoosh application code](/zh/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 access token
    "application": "XXXXX-XXXXX",                     // 必需。Pushwoosh application code
    "device_type": 7,                                 // 必需。7 代表 Mac OS X
    "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" 代表生产环境 
  }
}
```

## configureApplication (适用于 Windows)

为应用程序配置 Windows 平台。

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


#### 请求正文

| 名称 | 类型 | 描述 |
| ---------------------------------------------- | ------- | ------------------------------------------------------------------------------------- |
| auth\* | string | 来自 Pushwoosh 控制面板的 [API access token](/zh/developer/api-reference/api-identifiers/#api-access-token)。 |
| application\* | string | [Pushwoosh application code](/zh/developer/api-reference/api-identifiers/#application-code) |
| device\_type\* | integer | 对于 Windows，必须为 8。 |
| wns\_psid\* | string | 来自 Windows 应用商店的应用程序包安全标识符。以 "ms-app://" 开头。 |
| wns\_secret\* | string | 来自 Windows 应用商店的应用程序的客户端密钥。 |

<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 access token
    "application": "XXXXX-XXXXX",    // 必需。Pushwoosh application code
    "device_type": 8,                // 必需。8 代表 Windows
    "wns_psid": "ms-app://…",        // 必需。来自 Windows 应用商店的应用程序的包安全标识符
    "wns_secret": "CLIENT_SECRET"    // 必需。Windows 客户端密钥 
  }
}


```

## configureApplication (适用于 Amazon)

为应用程序配置 Amazon 平台。

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


#### 请求正文

| 名称 | 类型 | 描述 |
| ------------------------------------------------ | ------- | -------------------------------------------------------------- |
| auth\* | string | 来自 Pushwoosh 控制面板的 [API access token](/zh/developer/api-reference/api-identifiers/#api-access-token)。 |
| application\* | string | [Pushwoosh application code](/zh/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 access token
    "application": "XXXXX-XXXXX",    // 必需。Pushwoosh application code
    "device_type": 9,                // 必需。9 代表 Amazon
    "adm_cid": "CLIENT_ID",          // 必需。Amazon 客户端 ID
    "adm_secret": "CLIENT_SECRET",   // 必需。Amazon 客户端密钥
    "adm_framework": "native"        // 必需。可能的值：native、unity、adobeAir。 
  }
}
```

## configureApplication (适用于 Chrome)

为应用程序配置 Chrome 平台。

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


#### 请求正文

| 名称 | 类型 | 描述 | 必需 |
|------------------------------|---------|-----------------------------------------------------------------------------------------------------|----------|
| auth* | string | 来自 Pushwoosh 控制面板的 [API access token](/zh/developer/api-reference/api-identifiers/#api-access-token)。 | 必需 |
| application* | string | [Pushwoosh application code](/zh/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="示例">
```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>

## configureApplication (适用于 Safari)

为应用程序配置 Safari 平台。

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


#### 请求正文

| 名称 | 类型 | 描述 |
| --------------------------------------------------------------- | ------- |-------------------------------------------------|
| auth\* | string | 来自 Pushwoosh 控制面板的 [API access token](/zh/developer/api-reference/api-identifiers/#api-access-token)。 |
| application\* | string | [Pushwoosh application code](/zh/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 | Safari URL 模板，格式为 "https://%@"。 |
| safari\_icon\_file | string | 256x256px png 文件的 Base64 编码内容。 |
| 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 access token
    "application": "XXXXX-XXXXX",                      // 必需。Pushwoosh application code
    "device_type": 10,                                 // 必需。10 代表 Safari
    "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…", // 可选。256x256px png 文件的 Base64 编码内容
    "safari_key_file": "MIIMY...BAQ==",                // 必需。base64 编码的 Safari .p12 密钥文件内容
    "safari_key_password": "PASSWORD"                  // 可选。上述密钥文件的密码  
  }
}


```

## configureApplication (适用于 Firefox)

为应用程序配置 Firefox 平台。

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


#### 请求正文

| 名称 | 类型 | 描述 | 必需 |
|-------------------------------|---------|-------------------------------------------------------------------------------------------------------|----------|
| auth* | string | 来自 Pushwoosh 控制面板的 [API access token](/zh/developer/api-reference/api-identifiers/#api-access-token)。 | 必需 |
| application* | string | [Pushwoosh application code](/zh/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="示例">
```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>

## configureApplication (适用于 Email)

为应用程序配置 Email 平台。

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


#### 请求正文

| 名称 | 类型 | 描述 |
| ---------------------------------------------------- | ------- | --------------------------------------------------------- |
| auth\* | string | 来自 Pushwoosh 控制面板的 [API access token](/zh/developer/api-reference/api-identifiers/#api-access-token)。 |
| application\* | string | [Pushwoosh application code](/zh/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 access token
    "application": "XXXXX-XXXXX",           // 必需。Pushwoosh application code
    "device_type": 14,                      // 必需。14 代表 email
    "email_from_email": "email@domain.com", // 必需。电子邮件地址应为有效且已验证的地址
    "email_from_name": "SENDER_NAME",       // 必需。在“发件人”电子邮件字段中显示的名称
    "email_reply": "email@domain.com"       // 必需。回复电子邮件地址应为有效且已验证的地址
  }
}
```