Update zh-cn translations
This commit is contained in:
parent
5e2b739ee1
commit
a939c23559
168 changed files with 36955 additions and 1406 deletions
64
content/zh-cn/api/datetime-format.md
Normal file
64
content/zh-cn/api/datetime-format.md
Normal file
|
@ -0,0 +1,64 @@
|
|||
---
|
||||
title: Datetime 格式
|
||||
description: Datetime 格式
|
||||
menu:
|
||||
docs:
|
||||
weight: 10
|
||||
parent: api
|
||||
---
|
||||
|
||||
## Datetime {#datetime}
|
||||
|
||||
“Datetime”指定某个时刻。
|
||||
|
||||
Datetime 的字符串表示形式使用 [RFC3339 第 5.6 节](https://www.rfc-editor.org/rfc/rfc3339#section-5.6) 中定义的“互联网日期/时间格式”。
|
||||
|
||||
总的来说,它包含以下必须包含的部分:
|
||||
|
||||
```
|
||||
[YYYY]-[MM]-[DD]T[hh]:[mm]:[ss].[s][TZD]
|
||||
```
|
||||
|
||||
其中:
|
||||
|
||||
- `[YYYY]` = 四位数的年份
|
||||
- `[MM]` = 两位数的月份(01=一月,以此类推)
|
||||
- `[DD]` = 两位数的月份中的日期(01 到 31)
|
||||
- `[hh]` = 小时的两位数字(00 到 23)(不允许 24)
|
||||
- `[mm]` = 分钟的两位数字(00 到 59)
|
||||
- `[ss]` = 秒的两位数字(00 到 60)
|
||||
- `[s]` = 一位或多位数字表示秒的小数部分
|
||||
- `[TZD]` = 时区指示符(UTC 为 `Z`,或者 `+[hh]:[mm]` 或 `-[hh]:[mm]` 表示与 UTC 的偏移量)
|
||||
|
||||
例如,`1994-11-05T13:15:30.000Z`(等同于 `1994-11-05T08:15:30-05:00`)。
|
||||
|
||||
有关完整的 [ABNF 语法](https://www.rfc-editor.org/rfc/rfc2234),请查看 [RFC3339 第 5.6 节](https://www.rfc-editor.org/rfc/rfc3339#section-5.6)。
|
||||
|
||||
### 互操作性
|
||||
|
||||
- 日期和时间部分始终用大写 `T` 分隔(不是小写,也不是空格)。
|
||||
- 时区指示符 `Z` 始终为大写,而不是小写。
|
||||
- 秒的小数部分(`[s]`)至少用一位数字表示,最多三位数字表示。
|
||||
- 精确度较低的字段也可以表示为 Datetime。 例如,服务器可能会将某个 Datetime 值截断至当天午夜。
|
||||
|
||||
## 日期 {#date}
|
||||
|
||||
“日期”指定活动发生的公历日期,以 UTC 为准。
|
||||
|
||||
日期的字符串表示形式使用 ISO 8601(日期和时间表示的国际标准,第 5.2.1.1 节)中的完整、扩展的日历日期表示形式。 这也是 [W3C 日期与时间格式](https://www.w3.org/TR/NOTE-datetime)中的“完整日期”格式。
|
||||
|
||||
包含以下必须包含的组成部分:
|
||||
|
||||
```
|
||||
[YYYY]-[MM]-[DD]
|
||||
```
|
||||
|
||||
- `[YYYY]` = 四位数的年份
|
||||
- `[MM]` = 两位数的月份(01=一月,以此类推)
|
||||
- `[DD]` = 两位数的月份中的日期(01 到 31)
|
||||
|
||||
### 互操作性
|
||||
|
||||
- 年、月和日期组件始终用 `-` 分隔。
|
||||
|
||||
{{< translation-status-zh-cn raw_title="Datetime formats" raw_link="/api/datetime-format/" last_translation_time="2025-04-06" raw_commit="5e2b739ee193896bea937addc2843146ea0bc870">}}
|
162
content/zh-cn/api/guidelines.md
Normal file
162
content/zh-cn/api/guidelines.md
Normal file
|
@ -0,0 +1,162 @@
|
|||
---
|
||||
title: 指南与最佳实践
|
||||
description: 实现 Mastodon 应用时需要注意的事项。
|
||||
menu:
|
||||
docs:
|
||||
weight: 10
|
||||
parent: api
|
||||
---
|
||||
|
||||
## 登录 {#login}
|
||||
|
||||
**用户必须能够从应用登录到任何 Mastodon 实例**。 这意味着你必须询问服务器的域名,并使用应用注册 API 动态获取 OAuth2 凭据。
|
||||
|
||||
{{< page-ref page="client/authorized" >}}
|
||||
|
||||
{{< page-relref ref="methods/oauth" caption="OAuth 方法" >}}
|
||||
|
||||
{{< page-relref ref="api/oauth-scopes" caption="OAuth 作用域" >}}
|
||||
|
||||
## 用户名 {#username}
|
||||
|
||||
**去中心化对于用户而言必须是透明的**。 用户应该能够看到给定的用户来自另一个服务器,例如,可以通过在某处显示他们的 `acct` 实现这一点。 请注意,对于本站用户,`acct` 等于 `username`,对于外站用户,`acct` 等于 `username@domain`。
|
||||
|
||||
## 处理和排序 ID {#id}
|
||||
|
||||
原始的 Mastodon 实体 ID 以整数形式生成并转换为字符串。 但是,这并不意味着 ID *是* 整数,也不应该将其转换为整数! 这样做可能会因整数溢出而导致客户端应用崩溃,因此请**始终将 ID 视为字符串。**
|
||||
|
||||
话虽如此,由于 ID 是数字的字符串表示形式,因此仍然可以通过以下步骤轻松地按时间顺序对其进行排序:
|
||||
|
||||
1. 按大小排序。 较新的嘟文将具有更长的 ID。
|
||||
2. 按字典顺序排序。 较新的嘟文在按位置比较时,至少会有一个数字更高。
|
||||
|
||||
## 通过 API 响应进行分页 {#pagination}
|
||||
|
||||
许多 API 方法允许你使用 `limit`、`max_id`、`min_id` 和 `since_id` 等参数进行分页以获取更多信息。
|
||||
|
||||
limit
|
||||
: 要返回的最大结果数。 通常存在默认限制和最大限制; 这些限制将根据 API 方法而异。
|
||||
|
||||
max_id
|
||||
: 字符串。 返回的所有结果都将小于此 ID。 该参数实际上设置了结果的上限。
|
||||
|
||||
since_id
|
||||
: 字符串。 返回的所有结果都将大于此 ID。 该参数实际上设置了结果的下限。
|
||||
|
||||
min_id
|
||||
: 字符串。 返回紧邻此 ID 之后的新结果。 该参数实际上在此 ID 处设置了游标,并据此游标向前分页。(自 v2.6.0 起可用。)
|
||||
|
||||
例如,我们可能会使用某些参数获取 `https://mastodon.example/api/v1/accounts/1/statuses`,并且在下列情况下,我们将分别获得以下结果:
|
||||
|
||||
- 设置 `?max_id=1` 将不返回任何嘟文,因为没有 ID 早于 `1` 的嘟文。
|
||||
- 设置 `?since_id=1` 将返回最新的嘟文,因为自 `1` 以来已经有很多嘟文。
|
||||
- 设置 `?min_id=1` 将返回最旧的嘟文,因为 `min_id` 设置了游标。
|
||||
|
||||
某些 API 方法作用于未在 API 响应中公开公开的实体 ID,并且仅为后端和数据库所知。(与这种情况有关的通常是引用其他实体的实体,例如引用帐户的 Follow 实体,或引用嘟文的 Favourite 实体等。)
|
||||
|
||||
为了解决这个问题,Mastodon 可能会返回指向“prev”和“next”页面的链接。 这些链接通过响应中的 HTTP `Link` 标头提供。 考虑以下虚构的 API 调用:
|
||||
|
||||
```http
|
||||
GET https://mastodon.example/api/v1/endpoint HTTP/1.1
|
||||
Authorization: Bearer <access_token>
|
||||
|
||||
Link: <https://mastodon.example/api/v1/endpoint?max_id=7163058>; rel="next", <https://mastodon.example/api/v1/endpoint?min_id=7275607>; rel="prev"
|
||||
[
|
||||
{
|
||||
// some Entity
|
||||
},
|
||||
// more Entities in an Array
|
||||
]
|
||||
```
|
||||
|
||||
在这种情况下,你可以检索 `Link` 标头并解析它以查找指向较旧或较新页面的链接。 请记住以下规则:
|
||||
|
||||
- 这些链接将全部通过一个 `Link` 标头返回,并用逗号和空格 (`, `) 分隔
|
||||
- 每个链接都包含一个 URL 和一个链接关系,用分号和空格 (`; `) 分隔
|
||||
- URL 将用尖括号 (`<>`) 括起来,链接关系将用双引号 (`""`) 括起来,并以 `rel=` 为前缀。
|
||||
- 链接关系的值将为 `prev` 或 `next`。
|
||||
|
||||
跟随 `next` 链接应显示较旧的结果。 跟随 `prev` 链接应显示较新的结果。
|
||||
|
||||
## 弃用 {#deprecations}
|
||||
|
||||
Mastodon 很少删除 API,但这种情况仍然会不时发生。 因此,建议及时了解 Mastodon 的发布版本,并留意已弃用的 API。
|
||||
|
||||
此外,为了帮助实施者发现已弃用的 API 的使用情况,Mastodon 4.4.0 使用了 [RFC9745](https://datatracker.ietf.org/doc/html/rfc9745) 中定义的 `Deprecation` 标头。 建议库和应用程序开发人员查找此标头并在其开发环境中显示警告,以便可以在这些已弃用的 API 被淘汰之前发现它们。
|
||||
|
||||
## 格式化 {#formatting}
|
||||
|
||||
无法从外站服务器获取纯文本内容,并且纯文本语法规则在 Mastodon 和其他 fediverse 应用程序之间可能差异很大。 对于某些属性,例如嘟文的内容,**Mastodon 提供经过清理的 HTML**。 有关更多详细信息,请查看 [HTML 清理]({{< relref "spec/activitypub#sanitization" >}})。 你可以预期一下标签出现在内容中:
|
||||
|
||||
* `<p>`
|
||||
* `<br>`
|
||||
* `<span>`
|
||||
* `<a>`
|
||||
|
||||
{{< page-relref ref="spec/activitypub#sanitization" caption="ActivityPub > HTML 清理" >}}
|
||||
|
||||
### 提及、话题标签和自定义表情 {#tags}
|
||||
|
||||
提及和话题标签是 `<a>` 标签。 自定义表情符号保留其纯文本简码形式。 为了赋予这些实体语义含义并添加特殊处理,例如在应用内打开提及的账户而不是按网页打开, [Status]({{< relref "entities/Status" >}}) 中包含了对应的元数据,可以将其与特定标签匹配。
|
||||
|
||||
{{< page-relref ref="entities/Status" caption="嘟文实体" >}}
|
||||
|
||||
{{< page-relref ref="entities/Status#mentions" caption="嘟文#mentions" >}}
|
||||
|
||||
{{< page-relref ref="entities/Status#tags" caption="嘟文#tags" >}}
|
||||
|
||||
{{< page-relref ref="entities/Status#emojis" caption="嘟文#emojis" >}}
|
||||
|
||||
### 链接缩短 {#links}
|
||||
|
||||
Mastodon 中的链接不会使用 URL 缩短器缩短,并且强烈建议不要使用 URL 缩短器。 文本中的 URL 始终计为 23 个字符,旨在以可视化方式缩短。 为此,链接的标记如下所示:
|
||||
|
||||
```html
|
||||
<a href="https://example.com/page/that/is/very/long">
|
||||
<span class="invisible">https://</span>
|
||||
<span class="ellipsis">example.com/page</span>
|
||||
<span class="invisible">/that/is/very/long</span>
|
||||
</a>
|
||||
```
|
||||
|
||||
带有 `invisible` 类的 span 可以隐藏。 中间的 span 旨在保持可见。 如果 URL 不是非常长,则它可能没有类; 否则,它将具有 `ellipsis` 类。 标记中未插入省略号 (`…`) 字符; 相反,如果你需要在应用中使用它,则应该自己插入它。
|
||||
|
||||
## 过滤规则 {#filters}
|
||||
|
||||
### 服务端过滤规则(v2,Mastodon 4.0 及更高版本) {#server-filtered}
|
||||
|
||||
如果过滤规则针对嘟文,则相应的 FilterResult 将包含在 `filtered` 属性中。 客户端应检查此属性是否存在任何匹配项,并使用它们来应用预期的过滤规则操作。
|
||||
|
||||
但是,客户端实现可能仍然希望在客户端执行自己的规则匹配,因为这将允许追溯应用过滤规则更改,而无需从服务器重新获取嘟文。 这样操作时,应用应注意不要忽略具有 `keyword_matches` 以外的其他属性的 `filtered` 条目,以便处理过滤系统的扩展(例如 `status_matches`)。
|
||||
|
||||
命中的过滤规则需要根据上下文(`home`、`notifications`、`public`、`thread` 或 `profile`)和到期日期进行过滤。
|
||||
|
||||
当至少一个被命中且正在生效的过滤规则在 `filter_action` 的值为 `hide` 时,则不应显示该嘟文。 否则,如果至少一个被命中且正在生效的过滤规则在 `filter_action` 的值为 `warn`,则应隐藏该嘟文并显示警告,并且应允许用户在被告知命中了哪些过滤规则后显示该嘟文(通过 `title` 而不是通过实际匹配的关键字来标识)。
|
||||
|
||||
为了进行扩展,`filter_action` 的未知值应被视为 `warn`。
|
||||
|
||||
### 客户端过滤(v1,Mastodon 4.0 之前) {#client-filtered}
|
||||
|
||||
客户端必须基于从 API 返回的过滤规则执行自己的文本过滤。 服务器将为 `home` 和 `notifications` 上下文应用 `irreversible` 过滤规则,但**其他任何内容仍由客户端过滤**! 如果以某种方式未通过 `irreversible` 过滤规则删除嘟文,则客户端仍应对其进行过滤。
|
||||
|
||||
服务器不会删除过期的过滤规则。 它们应该不再生效,但它们仍然由服务器存储,因为用户可能会更新到期时间以重新启用该过滤规则。 用户最终可以删除这些过滤规则(如果他们希望这样做)。
|
||||
|
||||
如果 `whole_word` 为 true,则客户端应用应执行以下操作:
|
||||
|
||||
* 为你的应用定义“单词组成字符”。 在官方实现中,JavaScript 中为 `[A-Za-z0-9_]`,Ruby 中为 `[[:word:]]`。 Ruby 使用 POSIX 字符类(字母 | 标记 | 十进制数字 | 连接标点符号)。
|
||||
* 如果短语以单词字符开头,且匹配范围之前的上一个字符是一个单词字符,则应将它的匹配范围视为未命中。
|
||||
* 如果短语以单词字符结尾,且匹配范围之后的下一个字符是一个单词字符,则应将它的匹配范围视为未命中。
|
||||
|
||||
请查看 Mastodon 源代码中的 `app/javascript/mastodon/selectors/index.js` 和 `app/lib/feed_manager.rb` 以获取更多详细信息。
|
||||
|
||||
{{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/javascript/mastodon/selectors/index.js" caption="app/javascript/mastodon/selectors/index.js" >}}
|
||||
|
||||
{{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/lib/feed_manager.rb" caption="app/lib/feed_manager.rb" >}}
|
||||
|
||||
## 用于裁剪媒体缩略图的焦点 {#focal-points}
|
||||
|
||||
服务器端的预览图像永远不会被裁剪,以便支持各种应用和用户界面。 因此,裁剪必须由应用完成。 为了智能地执行裁剪,可以使用焦点来确保图像的特定部分始终在裁剪后的视口内。 请查看[关于如何定义焦点的指南](https://github.com/jonom/jquery-focuspoint#1-calculate-your-images-focus-point)。 总之,浮点范围为 -1.0 到 1.0,从左到右或从下到上。 (0,0) 是图像的中心。 (0.5, 0.5) 将位于右上象限的中心。 (-0.5, -0.5) 将位于左下象限的中心。 作为参考,Mastodon 前端中的缩略图一般为 16:9。
|
||||
|
||||
{{< figure src="assets/focal-points.jpg" caption="各种焦点及其坐标的演示" >}}
|
||||
|
||||
{{< translation-status-zh-cn raw_title="Guidelines and best practices" raw_link="/api/guidelines/" last_translation_time="2025-04-06" raw_commit="5e2b739ee193896bea937addc2843146ea0bc870">}}
|
171
content/zh-cn/api/oauth-scopes.md
Normal file
171
content/zh-cn/api/oauth-scopes.md
Normal file
|
@ -0,0 +1,171 @@
|
|||
---
|
||||
title: OAuth 作用域
|
||||
description: 定义你对 API 拥有哪些权限
|
||||
menu:
|
||||
docs:
|
||||
weight: 20
|
||||
parent: api
|
||||
---
|
||||
|
||||
## OAuth 作用域
|
||||
|
||||
API 访问被划分为若干 OAuth 作用域,这些作用域基于 [访问令牌]({{< relref "api/oauth-tokens" >}}) 注册和请求的作用域,限制 API 客户端可以执行的操作。Mastodon 中的作用域是分层的。例如,如果你请求了 `read` 作用域,你将自动获得 `read:accounts` 的访问权限。然而,**我们建议你的应用程序尽可能请求最有限的作用域**,也就是说,如果你只需要对列表和当前用户账户详情的读取权限,那么你应该使用 `profile read:lists` 作为你的作用域,而不是 `read`。
|
||||
|
||||
{{< hint style="info" >}}
|
||||
如果只是想检索当前已验证用户的详细信息,请使用 `profile` 作用域,该作用域只能访问 [`GET /api/v1/accounts/verify_credentials`]({{< relref "methods/accounts#verify_credentials" >}}) 端点。\
|
||||
此作用域是在 Mastodon 4.3 中添加的,因此我们建议在使用此作用域时,遵循下面“发现给定 Mastodon 实例支持的 OAuth 作用域”的指引。
|
||||
{{</ hint >}}
|
||||
|
||||
### 发现给定 Mastodon 实例支持的 OAuth 作用域
|
||||
|
||||
从 Mastodon 4.3.0 开始,增加了对 [RFC 8414](https://tools.ietf.org/html/rfc8414)'s `GET /.well-known/oauth-authorization-server` 终端的支持,允许你发现 Mastodon 实例支持的作用域(以及其他 OAuth 相关信息,例如终端和授权流程)。
|
||||
|
||||
我们建议使用此终端,以便为你的 OAuth 应用程序支持多个 Mastodon 版本。
|
||||
|
||||
如果你向 `GET /.well-known/oauth-authorization-server` 终端发出请求,并且返回 404,那么你可以认为该 Mastodon 实例运行的版本低于 4.3。在这种情况下,你需要查看你的应用程序需要的特定作用域,以及你希望支持的 Mastodon 版本范围内最低的通用作用域。
|
||||
|
||||
{{< hint style="info" >}}
|
||||
**示例:** 你想使用 `profile` 作用域,但也想支持没有该作用域且需要 `read:accounts` 的旧 Mastodon 实例。你可以通过向此终端发出请求来发现实例是否支持该作用域。
|
||||
{{< /hint >}}
|
||||
|
||||
{{< page-relref ref="methods/oauth#authorization-server-metadata" caption="GET /.well-known/oauth-authorization-server" >}}
|
||||
|
||||
### 可以同时请求多个作用域
|
||||
|
||||
在创建应用程序期间,你可以使用 `scopes` 参数指定多个以空格分隔的作用域。在授权阶段,你可以使用 `scope` 查询参数执行相同的操作。
|
||||
|
||||
{{< hint style="danger" >}}
|
||||
在应用程序创建期间保存的作用域集必须包含你将在授权请求中请求的所有作用域,否则,授权将失败。
|
||||
{{< /hint >}}
|
||||
|
||||
{{< hint style="info" >}}
|
||||
请注意 `scope` 和 `scopes` 的区别。这是因为 `scope` 是一个标准的 OAuth 参数名称,因此它在 OAuth 方法中使用。Mastodon 自己的 REST API 使用更合适的 `scopes` 名称。
|
||||
{{< /hint >}}
|
||||
|
||||
如果你没有在授权请求中指定 `scope`,或者在应用程序创建请求中指定 `scopes`,则生成的访问令牌/应用程序将被分配默认作用域。截至 Mastodon 4.3,当前为 `read`,但将来可能会更改。
|
||||
|
||||
{{< page-relref ref="methods/apps#create" caption="POST /api/v1/apps" >}}
|
||||
|
||||
### 版本历史 {#versions}
|
||||
|
||||
- 0.9.0 - 添加了 read、write、follow 作用域
|
||||
- 2.4.0 - 添加了用于推送通知的 push 作用域
|
||||
- 2.4.3 - 添加了细粒度作用域 [#7929](https://github.com/mastodon/mastodon/pull/7929)
|
||||
- 2.6.0 - 弃用了 `read:reports`(未使用的存根) [#8736/adcf23f](https://github.com/mastodon/mastodon/pull/8736/commits/adcf23f1d00c8ff6877ca2ee2af258f326ae4e1f)
|
||||
- 2.6.0 - 添加了 `write:conversations` [#9009](https://github.com/mastodon/mastodon/pull/9009)
|
||||
- 2.9.1 - 添加了管理和审核作用域 [#9387](https://github.com/mastodon/mastodon/pull/9387)
|
||||
- 3.1.0 - 添加了书签作用域 [#7107](https://github.com/mastodon/mastodon/pull/7107)
|
||||
- 3.5.0 - 弃用了 `follow` 作用域,转而支持细粒度作用域 [#17678](https://github.com/mastodon/mastodon/pull/17678)
|
||||
- 4.1.0 - 添加了用于阻止和允许的管理员作用域 [#20918](https://github.com/mastodon/mastodon/pull/20918)
|
||||
- 4.3.0 - 添加了 `profile` 作用域,仅用于获取有关当前已验证用户的信息 [#29087](https://github.com/mastodon/mastodon/pull/29087), [#30357](https://github.com/mastodon/mastodon/pull/30357)
|
||||
|
||||
## 高级作用域列表
|
||||
|
||||
我们建议你使用下表中右栏显示的[细粒度作用域](#granular-scopes),而不是使用以下作用域:
|
||||
|
||||
- `read`
|
||||
- `write`
|
||||
- `follow` {{%deprecated%}}
|
||||
- `admin:read`
|
||||
- `admin:write`
|
||||
|
||||
当只需要有关当前已验证用户的信息时,请使用 `profile` 作用域。
|
||||
|
||||
### `profile` {#profile}
|
||||
|
||||
仅授予对 [`GET /api/v1/accounts/verify_credentials`]({{< relref "methods/accounts#verify_credentials" >}}) 终端的访问权限。允许你仅检索有关当前已验证用户的信息。
|
||||
|
||||
### `read` {#read}
|
||||
|
||||
授予读取数据的权限,包括其他用户的数据。请求 `read` 也会授予下表中右栏所示的[细粒度作用域](#granular-scopes)。
|
||||
|
||||
### `write` {#write}
|
||||
|
||||
授予写入数据的权限。请求 `write` 也会授予下表中右栏所示的[细粒度作用域](#granular-scopes)。
|
||||
|
||||
### `push` {#push}
|
||||
|
||||
授予对 [Web Push API 订阅]({{< relref "methods/push" >}})的访问权限。在 Mastodon 2.4.0 中添加。
|
||||
|
||||
### `follow` {#follow}
|
||||
|
||||
{{< hint style="danger" >}}
|
||||
**已弃用**\
|
||||
此作用域已在 3.5.0 及更高版本中弃用。你应该单独请求[细粒度作用域](#granular-scopes),或者根据需要请求 `read`/`write` 作用域。
|
||||
{{< /hint >}}
|
||||
|
||||
授予管理关系的权限。请求 `follow` 也会授予下表中右栏所示的[细粒度作用域](#granular-scopes)。
|
||||
|
||||
### `admin:read` 和 `admin:write` {#admin}
|
||||
|
||||
用于管理和审核 API。在 Mastodon 2.9.1 中添加。
|
||||
|
||||
请求 `admin:read` 或 `admin:write` 也会授予下表中右栏所示的[细粒度作用域](#granular-scopes)。
|
||||
|
||||
{{< hint style="info" >}}
|
||||
请注意,没有可用的单一 `admin` 作用域。
|
||||
{{< /hint >}}
|
||||
|
||||
## 细粒度作用域 {#granular}
|
||||
|
||||
建议你使用细粒度作用域,除非你确实需要通过使用 `scope` 的 `read write follow push` 对所有内容进行完全访问。
|
||||
|
||||
| 作用域 | 细粒度作用域 |
|
||||
| :------------------------ | :----------------------------------- |
|
||||
| `profile` | |
|
||||
| `push` | |
|
||||
| `read` | |
|
||||
| | `read:accounts` |
|
||||
| | `read:blocks` |
|
||||
| | `read:bookmarks` |
|
||||
| | `read:favourites` |
|
||||
| | `read:filters` |
|
||||
| | `read:follows` |
|
||||
| | `read:lists` |
|
||||
| | `read:mutes` |
|
||||
| | `read:notifications` |
|
||||
| | `read:search` |
|
||||
| | `read:statuses` |
|
||||
| `write` | |
|
||||
| | `write:accounts` |
|
||||
| | `write:blocks` |
|
||||
| | `write:bookmarks` |
|
||||
| | `write:conversations` |
|
||||
| | `write:favourites` |
|
||||
| | `write:filters` |
|
||||
| | `write:follows` |
|
||||
| | `write:lists` |
|
||||
| | `write:media` |
|
||||
| | `write:mutes` |
|
||||
| | `write:notifications` |
|
||||
| | `write:reports` |
|
||||
| | `write:statuses` |
|
||||
| `follow` {{%deprecated%}} | |
|
||||
| | `read:follows` |
|
||||
| | `write:follows` |
|
||||
| | `read:blocks` |
|
||||
| | `write:blocks` |
|
||||
| | `read:mutes` |
|
||||
| | `write:mutes` |
|
||||
| `admin:read` | |
|
||||
| | `admin:read:accounts` |
|
||||
| | `admin:read:reports` |
|
||||
| | `admin:read:domain_allows` |
|
||||
| | `admin:read:domain_blocks` |
|
||||
| | `admin:read:ip_blocks` |
|
||||
| | `admin:read:email_domain_blocks` |
|
||||
| | `admin:read:canonical_email_blocks` |
|
||||
| `admin:write` | |
|
||||
| | `admin:write:accounts` |
|
||||
| | `admin:write:reports` |
|
||||
| | `admin:write:domain_allows` |
|
||||
| | `admin:write:domain_blocks` |
|
||||
| | `admin:write:ip_blocks` |
|
||||
| | `admin:write:email_domain_blocks` |
|
||||
| | `admin:write:canonical_email_blocks` |
|
||||
|
||||
## 已删除的作用域 {#removed}
|
||||
|
||||
* Mastodon 3.2.0 到 4.3.0 版本确实支持用于端到端加密 API 的 `crypto` 作用域,但是,此功能从未被记录或完全实现,并且已从 4.3.0 版本中删除。使用该作用域注册的任何应用程序在服务器升级到 4.3.0 及更高版本时,都将被删除该作用域。
|
||||
|
||||
{{< translation-status-zh-cn raw_title="OAuth Scopes" raw_link="/api/oauth-scopes/" last_translation_time="2025-04-06" raw_commit="5e2b739ee193896bea937addc2843146ea0bc870">}}
|
29
content/zh-cn/api/oauth-tokens.md
Normal file
29
content/zh-cn/api/oauth-tokens.md
Normal file
|
@ -0,0 +1,29 @@
|
|||
---
|
||||
title: OAuth 令牌
|
||||
description: 定义本文档中使用的令牌类型
|
||||
menu:
|
||||
docs:
|
||||
weight: 15
|
||||
parent: api
|
||||
---
|
||||
|
||||
## OAuth 令牌
|
||||
|
||||
Mastodon 支持两种不同的 OAuth 令牌类型:应用令牌和用户令牌。在本文档中,你将在 API 端点的 `OAuth` 字段中看到对这些令牌类型的引用。
|
||||
|
||||
`OAuth` 字段也引用了“Public”,在这种情况下,访问 API 端点无需提供 OAuth 访问令牌。
|
||||
|
||||
### 应用令牌
|
||||
|
||||
要接收应用令牌,你必须执行[客户端凭据授权流程]({{<relref "client/token#flow" >}}),这将为你提供一个令牌,该令牌可用于代表 OAuth 应用程序与 API 交互。目前,只有以下 API 端点接受此令牌类型:
|
||||
|
||||
- [`GET /api/v1/apps/verify_credentials`]({{<relref "methods/apps#verify_credentials" >}})
|
||||
- [`POST /api/v1/accounts`]({{<relref "/methods/accounts#create" >}})
|
||||
|
||||
### 用户令牌
|
||||
|
||||
要创建用户令牌,你必须执行[授权码授权流程]({{<relref "client/authorized#flow">}}),这将为你提供一个与批准访问授权请求的用户关联的访问令牌。
|
||||
|
||||
许多 Mastodon API 需要用户令牌和特定的作用域才能访问。
|
||||
|
||||
{{< translation-status-zh-cn raw_title="OAuth Tokens" raw_link="/api/oauth-tokens/" last_translation_time="2025-04-06" raw_commit="5e2b739ee193896bea937addc2843146ea0bc870">}}
|
51
content/zh-cn/api/rate-limits.md
Normal file
51
content/zh-cn/api/rate-limits.md
Normal file
|
@ -0,0 +1,51 @@
|
|||
---
|
||||
title: 速率限制
|
||||
description: 定义调用 REST API 的频率
|
||||
menu:
|
||||
docs:
|
||||
weight: 30
|
||||
parent: api
|
||||
---
|
||||
|
||||
## 响应头
|
||||
|
||||
速率限制信息将在响应头中返回:
|
||||
|
||||
`X-RateLimit-Limit`
|
||||
: 在一个时间段内允许的请求数量
|
||||
|
||||
`X-RateLimit-Remaining`
|
||||
: 你还可以发起的请求数量
|
||||
|
||||
`X-RateLimit-Reset`
|
||||
: 你的速率限制何时重置的时间戳
|
||||
|
||||
{{< hint style="info" >}}
|
||||
一个 API 方法可能会受到多个重叠的速率限制。 响应头会返回你最接近超过的那个限制的信息。
|
||||
{{</ hint >}}
|
||||
|
||||
## 限制
|
||||
|
||||
默认情况下,以下限制是硬编码的:
|
||||
|
||||
### 每个帐户
|
||||
|
||||
所有端点和方法可以在 5 分钟内被调用 300 次。
|
||||
|
||||
#### 上传媒体
|
||||
|
||||
`POST /api/v1/media` 可以在 30 分钟内被调用 30 次。
|
||||
|
||||
#### 删除状态
|
||||
|
||||
`DELETE /api/v1/statuses/:id` 或 `POST /api/v1/statuses/:id/unreblog` 可以在 30 分钟内被调用 30 次。
|
||||
|
||||
### 每个 IP
|
||||
|
||||
所有端点和方法可以在 5 分钟内被调用 300 次。
|
||||
|
||||
#### 创建帐户
|
||||
|
||||
`POST /api/v1/accounts` 可以在 30 分钟内被调用 5 次。
|
||||
|
||||
{{< translation-status-zh-cn raw_title="Rate limits" raw_link="/api/rate-limits/" last_translation_time="2025-04-06" raw_commit="5e2b739ee193896bea937addc2843146ea0bc870">}}
|
Loading…
Add table
Add a link
Reference in a new issue