-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTiktokShopApi.py
91 lines (76 loc) · 1.84 KB
/
TiktokShopApi.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import requests
class TiktokShopApi:
def __init__(self, x_rapidapi_key: str):
self.x_rapidapi_key = x_rapidapi_key
self.host = 'tiktok-shop-api.p.rapidapi.com'
self.base_url = 'https://tiktok-shop-api.p.rapidapi.com'
self.headers = {
'x-rapidapi-host': self.host,
'x-rapidapi-key': self.x_rapidapi_key
}
def _request(self, url: str, params=None):
res = requests.get(url, headers=self.headers, params=params)
res.raise_for_status()
return res.json()
def get_seller_products(
self,
user_id: str,
region: str,
count: int = 10,
cursor: int = 0
):
url = f'{self.base_url}/api/shop/product/user'
params = {
'uniqueId': user_id,
'region': region,
'count': count,
'cursor': cursor
}
res = self._request(url, params)
return res
def get_product_detail(
self,
product_id: str,
region: str
):
url = f'{self.base_url}/api/shop/product/detail'
params = {
'productId': product_id,
'region': region
}
res = self._request(url, params)
return res
def get_product_reviews(
self,
product_id: str,
region: str,
count: int = 10,
cursor: int = 0,
sort_type: int = 1 # 1: Sort by Relevance | 2: Sort by Recent
):
url = f'{self.base_url}/api/shop/product/reviews'
params = {
'productId': product_id,
'region': region,
'count': count,
'cursor': cursor,
'sortType': sort_type
}
res = self._request(url, params)
return res
def search_products(
self,
keyword: str,
region: str,
count: int = 10,
cursor: int = 0
):
url = f'{self.base_url}/api/shop/search'
params = {
'keyword': keyword,
'region': region,
'count': count,
'cursor': cursor
}
res = self._request(url, params)
return res