Skip to content

Commit 5d2b99a

Browse files
committed
V1.10.3 Update README.md
1 parent 6ebb1b2 commit 5d2b99a

File tree

4 files changed

+126
-18
lines changed

4 files changed

+126
-18
lines changed

README.md

Lines changed: 125 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,40 +3,148 @@
33
<a href="https://github.com/TikHubIO/TikHub-API-Python-SDK/blob/main/README.en.md">English</a> | <a href="https://github.com/TikHubIO/TikHub-API-Python-SDK/blob/main/README.md">简体中文</a>
44
</div>
55

6-
#### 简介
6+
#### **简介**
77

8-
[TikHub](https://tikhub.io/)是一个All in one的RESTful API平台
8+
🎉「[TikHub.io](https://tikhub.io/)」是一个**开箱即用的集成工具以及服务的平台**,我们的目标是帮助用户快速开展业务,并且支持功能定制。我们的愿景是组建一个社区创业项目,独木难成林,合作能共赢,**每一个社区成员都有机会将他们编写的功能或接口接入我们的平台,并且从中获得收益**。我们已经积累了大量的注册用户以及社区用户,并且为了实现这一愿景,我们正在积极筹划和落实合作策略,以确保生态的持续健康发展,欢迎各位加入我们的[Discord](https://discord.gg/aMEAS8Xsvz)社区
99

10-
我们提供的API只能获取公开数据,即任何人都可以通过浏览器及APP等访问抖音,TikTok,小红书以获取它们。
10+
---
1111

12-
如果您有任何建议或者需求,请联系我们,更多的功能正在开发中,敬请期待!
12+
#### **快速开始**
1313

14-
---
14+
[TikHub.io](https://tikhub.io/)的大多数API都是RESTFUL的,这意味着你只需要使用基本的HTTP请求即可完成调用。
15+
16+
所有的API都是基于OPenAPI规范进行编写的,这意味着你可以使用我们的`openapi.json`自动生成任何形式的API文档:
1517

16-
#### 鉴权
18+
[https://api.tikhub.io/openapi.json](https://api.tikhub.io/openapi.json)
1719

18-
接口文档中带有🔒的接口需要在请求头中携带Token才可调用。
20+
当然,我们已经默认使用了Swagger UI来展示我们的API文档,你可以在网页上打开下面的链接,然后在网页上进行API Token的认证,随后点击任意端点然后点击`Try it out`即可测试你所需要的端点,大多数端点都已经携带了默认值或演示值,这会更好的帮助你理解调用的所需参数:
1921

20-
调用这些接口会使用你账户中的剩余请求次数!
22+
[https://api.tikhub.io](https://api.tikhub.io)
2123

2224
---
2325

24-
#### 购买
26+
#### **鉴权**
27+
28+
> 简介
29+
30+
接口文档中带有🔒图标的端点需要在请求头中携带API Token才可以调用,调用这些接口会使用你账户中的剩余免费额度或账户余额,同时每一个端点还会根据API Token所有者的email地址进行请求速率的限制,每个端点之间都有彼此独立的RPS(Requests per second),在大多数情况下,用户可以每秒请求5次同一个端点。
31+
32+
> 生成API Token
33+
34+
获取API Token的步骤也很简单,你只需要登录到我们的用户后台 [TikHub User](https://tikhub.io/users/api_keys),然后点击左侧的`API Keys`就可以生成你自己的API Token,同时,你可以自定义API Token的权限(`Scopes`),也可以设置API Token的过期日期(`Expire Date`),还可以手动暂时关闭API Token(`Status`)。
35+
36+
> 在API文档网页上使用
37+
38+
当你完成上面的步骤后,你可以复制你的API Token,然后回到我们的Swagger UI网页,点击页面右侧的绿色`Authorize`,然后在弹窗底部的`Value`输入框中粘贴API Token即可完成鉴权。
2539

26-
Website(🚧ing): [tikhub.io](https://tikhub.io/)
40+
> 在HTTP请求中使用
2741
28-
API Document: [api.tikhub.io](https://api.tikhub.io/)
42+
如果你想在HTTP请求中携带API Token,请仔细阅读下方的格式,并且需要在请求头中携带一个叫`Authorization`的字段,下面我将给出一个JSON作为header的示范:
2943

30-
Discord(Support): [https://discord.gg/kk23BGeYrJ](https://discord.gg/kk23BGeYrJ)
44+
{
3145

32-
Github: [https://github.com/TikHubIO](https://github.com/TikHubIO)
46+
"Authorization":"Bearer Your_API_Token"
3347

34-
Email: [tikhub.io@proton.me](mailto:tikhub.io@proton.me)
48+
}
49+
50+
> 备注
51+
52+
请不要分享你的API Token,这可能会造成你的财产损失等一些列问题,我们强烈建议为你的每一个项目都使用不同的API Token,同时不要忘记在创建API Token时勾选对应的`Scopes`,否则在请求时会遇到权限不足的问题。
3553

3654
---
3755

38-
#### 公告
56+
## **使用SDK**
57+
58+
- 通过PyPi安装我们的[SDK](https://pypi.org/project/tikhub/)
59+
60+
```console
61+
pip install tikhub
62+
```
63+
64+
- 导入SDK
65+
66+
```python
67+
from tikhub import Client
68+
```
69+
70+
- 初始化Client
71+
72+
```python
73+
client = Client(base_url="https://api.tikhub.io",
74+
api_key="YOUR_API_TOKEN",
75+
proxies=None,
76+
max_retries=3,
77+
max_connections=50,
78+
timeout=10,
79+
max_tasks=50)
80+
```
81+
82+
- 请求用户数据示例
83+
84+
```python
85+
# 请求用户信息 | Request user info
86+
user_info = await client.TikHubUser.get_user_info()
87+
print(user_info)
88+
89+
# 请求用户每日使用情况 | Request user daily usage
90+
user_daily_usage = await client.TikHubUser.get_user_daily_usage()
91+
print(user_daily_usage)
92+
93+
# 计算价格 | Calculate price
94+
price = await client.TikHubUser.calculate_price(endpoint="/api/v1/douyin/app/v1/fetch_one_video", request_per_day=100)
95+
print(price)
96+
97+
# 获取阶梯式折扣百分比信息 | Get tiered discount percentage information
98+
tiered_discount_info = await client.TikHubUser.get_tiered_discount_info()
99+
print(tiered_discount_info)
100+
101+
# 获取一个端点的信息 | Get information of an endpoint
102+
endpoint_info = await client.TikHubUser.get_endpoint_info(endpoint="/api/v1/douyin/app/v1/fetch_one_video")
103+
print(endpoint_info)
104+
105+
# 获取所有端点信息 | Get all endpoints information
106+
all_endpoints_info = await client.TikHubUser.get_all_endpoints_info()
107+
print(all_endpoints_info)
108+
```
109+
110+
- Client中的可用属性
111+
112+
```python
113+
# TikHub
114+
self.TikHubUser = TikHubUser(self.client)
115+
116+
# Douyin
117+
self.DouyinWeb = DouyinWeb(self.client)
118+
self.DouyinAppV1 = DouyinAppV1(self.client)
119+
self.DouyinAppV2 = DouyinAppV2(self.client)
120+
self.DouyinAppV3 = DouyinAppV3(self.client)
121+
122+
# TikTok
123+
self.TikTokWeb = TikTokWeb(self.client)
124+
self.TikTokAppV2 = TikTokAppV2(self.client)
125+
self.TikTokAppV3 = TikTokAppV3(self.client)
126+
127+
# Instagram
128+
self.InstagramWeb = InstagramWeb(self.client)
129+
130+
# Weibo
131+
self.WeiboWeb = WeiboWeb(self.client)
132+
```
133+
134+
- 使用`DouyinAppV1``fetch_one_video`方法调用接口获取单一视频数据。
135+
136+
```python
137+
# 获取单个作品数据 | Get single video data
138+
video_data = await client.DouyinAppV1.fetch_one_video(aweme_id="7345492945006595379")
139+
print(video_data)
140+
```
141+
142+
- 我们已经使用HTTPX的对大多数端点进行了异步封装,如果你的代码是同步执行的,你可以使用下面的代码防止异步传染。
39143

40-
TikHub的API将使用**免费加付费**的形式运行。
144+
```python
145+
# 使用asyncio.run防止异步传染到其他代码 | Use asyncio.run to prevent asynchronous infection to other code
146+
video_data = asyncio.run(client.DouyinAppV1.fetch_one_video(aweme_id="7345492945006595379"))
147+
print(video_data)
148+
```
41149

42-
登录后,通过签到可以随机获得50-100次API请求,每24小时可签到一次
150+
- 由于章节有限,在此处就不列出完整的方法了,你可以通过查看源代码的形式查看每一个属性内实现的方法,并且每个方法接受的参数都已经加上了`type hints`

dist/tikhub-1.10.3-py3-none-any.whl

53.5 KB
Binary file not shown.

dist/tikhub-1.10.3.tar.gz

35.5 KB
Binary file not shown.

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
setup(
1515
name="tikhub",
16-
version="1.10.2",
16+
version="1.10.3",
1717
author="TikHub.io",
1818
author_email="tikhub.io@proton.me",
1919
description="A Python SDK for TikHub RESTful API",

0 commit comments

Comments
 (0)