# 重命名

`POST` `https://api.pushwoosh.com/messaging/v2/rename`

设置或清除先前创建的、由其 `message_code` 标识的消息的**营销活动名称**。消息的其他一切都不会改变。内容、受众和计划安排均与之前完全相同。

仅当消息仍处于**待处理**状态时，才能重命名——即消息已创建但尚未被提取以进行发送。已进入 `waiting`、`processing` 或更后续状态的消息将无法再重命名。在控制面板中，此状态在**状态**列显示为 **Scheduled**，而非字面意义上的 "Pending"。请参阅[消息状态](/zh/product/statistics-and-analytics/message-history/#message-statuses)。

<Aside type="caution" title="重要">

- 该名称将去除首尾空白并截断为 255 个字符。空（或仅含空白）的名称将完全清除营销活动名称，消息会回退使用其在 [Message History](/zh/product/statistics-and-analytics/message-history/) 中的默认标题。

- 此调用是幂等的：再次发送相同的名称会重新应用相同的值。无论名称是否真的发生变化，每次调用都会更新消息的最后修改时间，因此重复调用可能会使该消息出现在 Message History 默认**最后修改**排序的顶部。
</Aside>

要检查消息是否仍处于可重命名状态，请参阅[检查消息状态](#checking-message-status)。

## 请求

在 `Authorization: Token <API_TOKEN>` 标头中使用您的[服务器 API 令牌](/zh/developer/api-reference/api-access-token/#server-api-token)进行身份验证。

| 字段 | 类型 | 必需 | 描述 |
|---|---|---|---|
| `message_code` | 字符串 | 是 | 要重命名的消息的[消息代码](/zh/developer/api-reference/api-identifiers/#message-code)，由 [`Notify`](/zh/developer/api-reference/messaging-api-v2/notify/) 在 `result.message_code` 中返回。 |
| `campaign_name` | 字符串 | 是 | 新的营销活动名称。将被裁剪并截断为 255 个字符。空字符串将清除该名称。 |

### 请求示例

```bash
curl -X POST https://api.pushwoosh.com/messaging/v2/rename \
  -H "Authorization: Token YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "message_code": "XXXX-XXXXXXXX-XXXXXXXX",
    "campaign_name": "Flash_Sale_Push"
  }'
```

## 响应

成功后，返回 HTTP 200 和一个空的 JSON 正文。

```json
{}
```

## 错误

错误使用标准的 gRPC-Gateway 错误封套：`{ "code": ..., "message": ..., "details": [...] }`。

| HTTP 状态 | 条件 |
|---|---|
| `400` | `message_code` 缺失。 |
| `400` | 消息不处于可重命名状态（不再是 `pending`）。 |
| `403` | 消息属于另一个账户。 |
| `404` | 给定的 `message_code` 不存在任何消息。 |
| `500` | 加载消息或应用新名称时发生内部错误。请重试请求。 |


**示例**

重命名一条已经开始发送的消息将返回 HTTP `400`：

```json
{
  "code": 9,
  "message": "message status \"waiting\" is not renamable",
  "details": []
}
```

<span id="checking-message-status" />

## 检查消息状态

在重命名之前，您可以验证消息是否仍处于可重命名状态。除了在控制面板的消息表中读取**状态**列（[**Campaigns → 一次性消息**](/zh/product/statistics-and-analytics/message-history/)）之外——可重命名的消息在该列中显示为 **Scheduled**，而非字面意义上的 "Pending"——您还可以使用 [`messages:list`](/zh/developer/api-reference/statistics-api/message-statistics-api/#messageslist) 以编程方式查询状态：

- 在 `filters.messages_codes` 数组中传递 `message_code`（以及必需的 `filters.application`）。
- 读取 `items[]` 中匹配条目的 `status` 字段。

<Aside type="note">
`messages:list` 是 Statistics API 的一部分，并使用与此端点不同的身份验证标头：`Authorization: Api <Server Key>`。
</Aside>

## 相关内容

<CardGrid>
  <LinkCard title="通知" href="/developer/api-reference/messaging-api-v2/notify/" />
  <LinkCard title="更新" href="/developer/api-reference/messaging-api-v2/update/" />
  <LinkCard title="取消" href="/developer/api-reference/messaging-api-v2/cancel/" />
  <LinkCard title="消息统计" href="/developer/api-reference/statistics-api/message-statistics-api/#messageslist" />
  <LinkCard title="Messaging API v2 概述" href="/developer/api-reference/messaging-api-v2/" />
  <LinkCard title="从 v1 迁移" href="/developer/api-reference/messaging-api-v2/migration-from-v1/" />
</CardGrid>