把你的笑话发给 GiggleTime
GiggleTime 是一个支持 26 种语言的笑话网站。如果你写笑话、运营幽默账号或有自己的收藏,可以从你自己的应用或脚本发送给我们。每个笑话上线前都会有人阅读。
如何运作
- 创建一个免费的 GiggleTime 账户,或登录。
- 在“我的投稿”中告诉我们你想发送什么,以及大约多少个笑话。
- 我们会阅读每一份申请并通过邮件回复,通常在一两天内。
- 获批后,在同一页面创建你的密钥。它只显示一次,请妥善保存。
- 用一个简单的 HTTPS 请求发送笑话。每个笑话都会等待审核,你随时可以查看它的状态。
我们如何审核笑话
每个笑话,无论来自 API 还是我们网站上的表单,发布前都会有人阅读。大多数会在一天内审核完毕。
我们会检查它读起来是否像笑话、是否使用你所选的语言并符合分类,以及 GiggleTime 上是否已有任何语言的相同笑话。我们可能会修正错别字,或把笑话移到更合适的分类。
如果我们不能采用某个笑话,一定会告诉你原因:原因会显示在“我的投稿”和 API 中。通过审核的笑话会发布在 GiggleTime 上,可以用我们所有的语言阅读。
我们接受什么
- 你自己写的笑话,或可以自由分享的笑话,例如传统笑话和民间故事。
- 一句话笑话、问答式笑话、短故事和“敲敲门”笑话,可使用我们 26 种语言中的任意一种。
- 借助少量 AI 帮助写成的笑话可以接受,前提是你检查过并且确实好笑。我们不接受 AI 批量生成的笑话。
- 不得抄袭其他喜剧演员、书籍或网站的内容,不得有仇恨或骚扰,也不得包含链接或广告。
- 成人幽默请标记 NSFW。未开启该选项的访客看不到这些内容。
限制
- 起初每个密钥 24 小时内最多 20 个笑话。对于笑话经常通过审核的投稿者,我们会提高上限。
- 每分钟最多 10 个笑话。
- 当审核队列已满时,新笑话会暂时被拒绝。请第二天再试。
API 参考
所有请求都发送到 https://www.giggletime.app/api/v1/,并需要在 Authorization 请求头中带上你的密钥:
Authorization: Bearer gtj_your_key
调用
GET /api/v1/me | 你的限制,以及过去 24 小时内你发送了多少笑话。 |
GET /api/v1/categories?language=en | 该语言下的分类 ID 和名称、语言列表以及笑话类型。 |
POST /api/v1/jokes | 以 JSON 发送一个笑话。 |
GET /api/v1/jokes | 你的笑话,按从新到旧排列,附带状态。可选:limit(最多 100)和用于下一页的 before_id。 |
发送笑话的字段
language | 必填。语言代码,例如 en、bg 或 es。 |
category_id | 必填。下方列表或 /api/v1/categories 中的分类 ID。 |
type | 必填。one-liner、setup-punchline、story 或 knock-knock。 |
setup, punchline | 问答式笑话:每部分最多 300 个字符。 |
text | 其他所有类型:最多 300 个字符,故事最多 2000 个。 |
author | 可选。笑话署名,最多 60 个字符。 |
nsfw | 可选。成人幽默填 true。 |
示例
curl
curl -X POST https://www.giggletime.app/api/v1/jokes \
-H "Authorization: Bearer gtj_your_key" \
-H "Content-Type: application/json" \
-d '{"language": "en", "category_id": 13, "type": "setup-punchline",
"setup": "Why did the scarecrow win an award?",
"punchline": "He was outstanding in his field."}'
Python
import requests
r = requests.post("https://www.giggletime.app/api/v1/jokes",
headers={"Authorization": "Bearer gtj_your_key"},
json={"language": "en", "category_id": 13, "type": "one-liner",
"text": "I told my wife she draws her eyebrows too high. She looked surprised."})
print(r.status_code, r.json())
JavaScript
const r = await fetch("https://www.giggletime.app/api/v1/jokes", {
method: "POST",
headers: { "Authorization": "Bearer gtj_your_key", "Content-Type": "application/json" },
body: JSON.stringify({ language: "en", category_id: 13, type: "one-liner",
text: "I'm reading a book about anti-gravity. It's impossible to put down." })
});
console.log(r.status, await r.json());
响应
收到的笑话会返回 201 和它的 ID。在我们审核之前,它处于待审核状态:
{"id": 1830, "status": "pending", "remaining_today": 19}
出错时会返回一个代码,告诉你该怎么处理:
400 | invalid_language, invalid_category, invalid_joke_type, missing_text, too_long, invalid_json |
401 | unauthorized: 密钥缺失、错误或已被撤销。 |
403 | terms_required: 请登录网站并接受最新条款。 account_suspended |
409 | duplicate_joke: 相同的笑话已经在 GiggleTime 上了。 |
429 | too_fast, daily_limit: 请稍候再试。 |
503 | review_queue_full: 请第二天再试。 |
状态和原因
在 GET /api/v1/jokes 中,每个笑话的状态是 pending(待审核)、approved(已通过,附链接)或 rejected(未通过,附原因代码和用笑话语言写的原因):
duplicate | 未通过:这个笑话已经在 GiggleTime 上了。 |
not_a_joke | 未通过:这读起来不像笑话。 |
wrong_language | 未通过:文本不是所标注的语言。 |
offensive | 未通过:违反了我们的内容准则。 |
copied | 未通过:这看起来是其他喜剧演员的作品。 |
quality | 未通过:不适合 GiggleTime。 |
分类
13两性关系15健康与衰老7其他8动物4双关语6圣诞节11学校9家庭10工作5怪异17日常生活14科技2编程16金钱12饮食3黑暗
语言
ar العربية
bg Български
ca Català
cs česky
cy Cymraeg
da dansk
de Deutsch
el Ελληνικά
en English
es español
et eesti, eesti keel
fr français
hi हिन्दी, हिंदी
id Bahasa Indonesia
it Italiano
ja 日本語
ka ქართული
nl Nederlands, Vlaams
pl polski
pt Português
ru Русский
sv svenska
tr Türkçe
uk Українська
vi Tiếng Việt
zh 中文
常见问题
要收费吗?
不。API 是免费的。
我发送的笑话归谁所有?
你保留你拥有的一切权利。发送笑话即表示你允许 GiggleTime 按照我们的条款发布、翻译并在我们的应用中展示它。 服务条款
以后可以删除笑话吗?
可以。联系我们,我们会将其删除。 联系我们
如果密钥泄露了怎么办?
在“我的投稿”中创建新密钥。旧密钥会立即失效。
我更想在自己的网站上展示笑话。
那就试试我们免费的“每日一笑”小组件吧。 为您的网站添加笑话小工具