Zalo OA - API
1. Setup trước khi gọi API
1.1 Tạo ứng dụng trên nền tảng Zalo (Zalo App): https://developers.zalo.me/
1.2. Liên kết và sử dụng Zalo App cho Zalo OA OpenAPI:
- Tạo tài khoản OA theo link này: Tạo Zalo OA
- Liên kết và xác thực: liên kết (lưu ý, tk developer phải là admin của OA).
- access_token: T5arSONYO09zMJfmXUre1dHGEd6Dymn17KabLutsAqXq7IHumw4UQ3HBE1k1ZIapSa4oJDcJP4ylQ4bVlxT4NXzWJ27hlaeI6GjWPxpqN14IAKS5v_nkEK85GWdpvqa_Obb1GEkmGJzE26SnrkPWFcGXSW_fnbSWN19y3S_nUWnMC6mSq-XG65GG2ZtohX4nQb1V8ihkS39Q52SrxBGXFsfQC1NuZmGuU4Wq7CwdFn1iOZ4X_i8GDbWkDoFwqoSiTnmc7FtN8Ir45n5OzjOLI7KI15_Y-ovkTIGKU_Ra7b56F0fyzFK-KMGpFrpfwWP8M1GfPE7C3H5gT0aMsfeF4rnbEI3ftmrIQJ0ONfpA8qaBD0zreU4cUbOq96ElysfnEYymP8ptELOR3I8dxC4jANG4DWfNPy6DOqQ1-c85
- refresh_token: jT2xJmEUqrkyqBHE0v7RNxNPj4yBZuWQoAIx3nkRlHZnrgvSEUszEFdyi4jBwfvJly2V9b3Xj3Uwre4dUPo5Ju-AbGjwYuDwhSkF7MJZgLUC_zeQSFVYLhJRp4TMrUO5jCNmPcZ4dHUlpPDU6EIa1z6gYM8OlRKPgOQVTcc8isEfajblVRBJABgusMnQZjyEwOJRHb_HxohgziD65DlrAzpnx6rfvFmvflZkO4dktWBseVf67PR20_UYwayIxyu3vDxHIYZdl4Ri_DSn4zV_QDBand4JzySUzhVENHFYlKd0zOefBhYyEFgiftq4-PGQySw23XtQbLQlcxCaJuAzPeQuY2fAYgmzkR6rMsQVknAnjQzhLRYZ7wRubKX5zfqRczkESrAIYG2bcf1dIwU1AuPuNY47Xj5S
1.3 Lấy access_token: click link này
curl --location --globoff
--request GET 'https://openapi.zalo.me/v3.0/oa/user/getlist?data={"offset":0,"count":15,"last_interaction_period":"TODAY","is_follower":"true"}' \
--header 'access_token: <your_access_token>'
2. API liên quan người dùng
1. Lấy danh sách người dùng
- URL: https://openapi.zalo.me/v3.0/oa/user/getlist
- Method: GET
- Data send
{
"offset":0,
"count":15,
"last_interaction_period":"TODAY",
"is_follower":"true"
}
- Response Type: text/json
{
"data": {
"total": 6,
"count": 15,
"offset": 0,
"users": [
{
"user_id": "4572947693969771653"
},
{
"user_id": "8969911359184683656"
},
{
"user_id": "195313740847641158"
},
{
"user_id": "2242767944251000300"
},
{
"user_id": "4476513743385388268"
},
{
"user_id": "7511600376107668429"
}
]
},
"error": 0,
"message": "Success"
}
2. Lấy chi tiết
- URL: https://openapi.zalo.me/v3.0/oa/user/detail
- Method: GET
{"user_id":"4572947693969771653"}
- Response Type: text/json
{
"data": {
"user_id": "4572947693969771653",
"user_id_by_app": "4604138790644222978",
"display_name": "Tên hiển thị của người dùng",
"user_alias": "Tên alias của người dùng",
"is_sensitive": false,
"user_last_interaction_date": "06/07/2023",
"user_is_follower": false,
"avatar": "https://s120-ava-talk.zadn.vn/5/2/2/e/2/120/e7a622713a730e9c1aeb339343486a55.jpg",
"avatars": {
"240": "https://s240-ava-talk.zadn.vn/5/2/2/e/2/240/e7a622713a730e9c1aeb339343486a55.jpg",
"120": "https://s120-ava-talk.zadn.vn/5/2/2/e/2/120/e7a622713a730e9c1aeb339343486a55.jpg"
},
"tags_and_notes_info": {
"notes": [
""
],
"tag_names": []
},
"shared_info": {
"address": "123 Trần Hưng Đạo",
"city": "Hồ Chí Minh",
"district": "Quận 1",
"phone": "84385953xxx",
"name": "Tên người dùng"
}
},
"error": 0,
"message": "Success"
}
3. Cập nhật người dùng
+ **URL**: <https://openapi.zalo.me/v3.0/oa/user/detail>
+ **Method**: GET
{
"user_id": "4064634764263601113",
"shared_info": {
"name": "Display name",
"phone": "012345678",
"address":"ho chi minh",
"city_id": city_id,
"district_id": district_id,
},
"user_alias": "Alias name"
}
* **Response Type**: text/json
{
"error": 0,
"message": "Success"
}
3. API liên quan tới OA
3.1. Lấy thông tin OA
+ **URL**: <https://openapi.zalo.me/v2.0/oa/getoa>
+ **Method**: GET
+ **Response Type**: text/json
{
"data": {
"oaid": "4462152339089565647",
"name": "Zalo Official Account",
"description": "Zalo Official Account (Zalo OA) là tài khoản chính thức của Doanh Nghiệp, Media và Cơ quan nhà nước với mục đích kết nối và mang lại giá trị với người dùng Zalo.",
"oa_alias": "officialaccount",
"is_verified": true,
"oa_type": 2,
"cate_name": "Thực phẩm & Đồ uống",
"num_follower": 5,
"avatar": "https://s160-ava-talk.zadn.vn/a/e/f/b/1/160/5e56485fc25803aa9f1c646fa931c592.jpg",
"cover": "https://cover-talk.zadn.vn/c/1/0/5/2/5e56485fc25803aa9f1c646fa931c592.jpg",
"package_name": "Nâng cao",
"package_valid_through_date": "13/12/2023",
"package_auto_renew_date": "14/12/2023",
"linked_ZCA": "ZBA-1048473834"
},
"error": 0,
"message": "Success"
}
### 3.2. Kiểm tra hạn mức tin nhắn OA
- URL: https://openapi.zalo.me/v3.0/oa/quota/message - Method: POST
### Cấu trúc body của request
| Thuộc tính | Kiểu dữ liệu | Bắt buộc | Mô tả | | quota_owner | string | Yes | Thực thể sở hữu Quota muốn truy xuất OA / APP | | product_type | string | No | loại sản phẩm thuộc nhánh tính năng muốn truy xuất: * cs: tin Tư vấn * transaction: tin Giao dịch | | quota_type | string | No | loại quota (nguồn quota sử dụng) muốn truy xuất: * sub_quota: quota tin theo gói dịch vụ OA * purchase_quota: quota tin mua lẻ (sắp ra mắt) * reward_quota: quota tin được tặng từ các chương trình khuyến mãi (sắp ra mắt) | - Content Type: application/json - Response Type: text/json
{
"data": [
{
"asset_id": "216991e1ea59bc03e54c",
"product_type": "cs",
"quota_type": "sub_quota",
"valid_through": "10/10/2024",
"total": 2000,
"remain": 1990
},
{
"asset_id": "cdfef30e10c5399f60d0",
"product_type": "transaction",
"quota_type": "purchase_quota",
"valid_through": "10/12/2024",
"total": 5000,
"remain": 1200
},
{
"asset_id": "988332fbc118e842b10d",
"product_type": "transaction",
"quota_type": "purchase_quota",
"valid_through": "10/10/2024",
"total": 2000,
"remain": 1990
},
{
"asset_id": "ec88cd4123a20af853b7",
"product_type": "transaction",
"quota_type": "reward_quota",
"valid_through": "10/11/2024",
"total": 2000,
"remain": 2000
}
],
"error": 0,
"message": "success"
}
```### 3.3. Lấy thông tin Zalo Ads
- **URL:** <https://openapi.zalo.me/v2.0/oa/form/get>
- **Method:** GET
curl \
-X GET \
-H 'accesstoken: - **Response Type:** text/json
{
"data": {
"total": 1,
"questions": [
{
"questionId": "322952247199289087",
"title": "Họ và tên"
},
{
"questionId": "6485904598335572953",
"title": "Default Title 2"
}
],
"responses": [
{
"submitTime": "1623670227",
"answers": [
{
"questionId": "322952247199289087",
"responses": [
"Dasdsa"
]
},
{
"questionId": "6485904598335572953",
"responses": [
"Trả lời 1. "
]
},
]
}
]
},
"error": 0,
"message": "Success"
}
```