---
sourceType: official-guide
sourceTypeMatchedRule: fallback
slug: OA/extension/advanced/zoasdk-functions
title: zoaSdk tích hợp sẵn trong zoa-cli
---
# zoaSdk tích hợp sẵn trong zoa-cli

Các function đã được tích hợp trong zoa-cli

### openModal

Thực hiện mở modal.

```json
zoaSdk?.openModal({
    "title": "name",
    "path": "path",
    "height": 500,
    "width": 500,
    "onClose": () => {
        // callback function
        console.log("callback function");
    }
});
```


### closeModal

Đóng modal.

```json
zoaSdk?.closeModal();
```


### getSessionInfo

Lấy thông tin tương ứng với lần hiển thị. Hàm này không thể gọi từ local và cần được trực tiếp nhúng vào trang giao diện trên OA test để kiểm tra.

```tsx
(window as any)?.zoaSdk?.getSessionInfo((result, error) => {});
```

```jsx
if (window.zoaSdk !== undefined) {
    window.zoaSdk.getSessionInfo((result, error) => {});
}
```


Minh họa response

```json
{
  "data": {
    "oa_id": "123",
    "admin_id": "213",
    "user_id": "213213",
    "user_last_interaction_date": "06/07/2023",
    "user_is_follower": false,
    "timestamp": 1726111886460
  },  
  "hmac": "53d2db4972303a9a92e2632f329dc5afc8cae0835f360010e1311665b7171366"
}
```

Trong đó:
- **`data`**: Đây là dữ liệu chính mà hệ thống trả về, bao gồm các thông tin như `oa_id`, `admin_id`, `timestamp`...
  - Nội dung trả về tùy biến theo từng zone.
  - Đối với field `user_id` và `admin_id`, data sẽ trả về `""` nếu zone không có thông tin tương ứng.
- **`hmac`**: Đây là chuỗi hash mà hệ thống tạo ra dựa trên `data` và thông tin `secretKey` của extension. `hmac` được sử dụng để đảm bảo rằng dữ liệu không bị thay đổi trong quá trình truyền tải.  
  Xem thêm [Phương thức xác thực user](/docs/OA/extension/advanced/authorize-user).


## getViewPort

Lấy width height của parent và offset của iframe.

```tsx
(window as any)?.zoaSdk?.getViewPort((result, error) => {})
```

Minh họa response (data):

```json
{
  "width": 1920,
  "height": 1080,
  "offsetX": 140,
  "offsetY": 2800
}
```


## openPermission

Hỗ trợ hiển thị pop-up yêu cầu cấp quyền cho tiện ích tại các Zone

```tsx
(window as any)?.zoaSdk?.openPermission()
```

Use case: 
- Sử dụng khi cần xin quyền OA

Lưu ý:
- Việc lạm dụng pop-up xin quyền có thể gây khó chịu và tăng khả năng rời bỏ tiện ích
- Nên sử dụng trong những trường hợp thật sự cần thiết, cân nhắc trải nghiệm người dùng


Minh họa pop-up:

 ![](/assets/OA/img/extension/open-permission.jpg)
