# Bắt đầu nhanh

Thiết lập và chạy với API MoreLogin sau 5 phút.

## Tự động hóa trình duyệt (API cục bộ)

**Kịch bản:** Tạo hồ sơ trình duyệt, khởi chạy nó, kết nối qua Puppeteer để chạy tập lệnh rồi dừng tập lệnh đó.

### Điều kiện tiên quyết

- Ứng dụng MoreLogin dành cho máy tính để bàn **v2.15.0++** được cài đặt và chạy cục bộ.
- Đã cài đặt Puppeteer (`npm i puppeteer-core`).


### Bước 1: Tạo hồ sơ trình duyệt

```bash
curl -X POST "http://127.0.0.1:40000/api/env/create/quick" \
  -H "Content-Type: application/json" \
  -d '{
    "browserTypeId": 1,
    "operatorSystemId": 1,
    "quantity": 1
  }'
```

*Endpoint này trả về `data` là mảng ID hồ sơ vừa tạo. Hãy lấy `data[0]` làm `envId` cho các bước sau (ví dụ: `1993244721490239488`). ID tài nguyên là chuỗi thập phân.*

### Bước 2: Khởi động hồ sơ và nhận cổng gỡ lỗi

```bash
curl -X POST "http://127.0.0.1:40000/api/env/start" \
  -H "Content-Type: application/json" \
  -d '{"envId": "1993244721490239488"}'
```

*Câu trả lời sẽ bao gồm `debugPort` (ví dụ: `12345`).*

### Bước 3: Kết nối Puppeteer (Node.js)

```javascript
const puppeteer = require('puppeteer-core');

(async () => {
  const browser = await puppeteer.connect({
    browserURL: 'http://127.0.0.1:12345'
  });
  const page = await browser.newPage();
  await page.goto('https://www.morelogin.com');
  console.log(await page.title());
  await browser.disconnect();
})();
```

### Bước 4: Dừng hồ sơ

```bash
curl -X POST "http://127.0.0.1:40000/api/env/close" \
  -H "Content-Type: application/json" \
  -d '{"envId": "1993244721490239488"}'
```

## Quản lý điện thoại đám mây (API mở)

**Kịch bản:** Tạo nhanh điện thoại đám mây, khởi động, cài đặt ứng dụng và kích hoạt lịch trình RPA.

### Điều kiện tiên quyết

- ID API và Khóa API từ bảng điều khiển MoreLogin.
- Bước 1–3 chạy được trên tài khoản mới. Bước 4 cần ít nhất một ứng dụng trong thư viện ứng dụng của nhóm và bước 5 cần ít nhất một mẫu RPA; không thể tạo hai thứ này qua API, hãy chuẩn bị trong bảng điều khiển nếu truy vấn trả về rỗng.


### Bước 1: Nhận Access Token

```bash
curl -X POST "https://api.morelogin.com/oauth2/token" \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": "YOUR_API_ID",
    "client_secret": "YOUR_API_KEY",
    "grant_type": "client_credentials"
  }'
```

*Lưu `access_token` từ câu trả lời.*

### Bước 2: Tạo Cloud Phone

```bash
curl -X POST "https://api.morelogin.com/cloudphone/create" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -d '{
    "skuId": "10002",
    "quantity": 1
  }'
```

*Lưu `data[0]` từ phản hồi làm Cloud Phone ID. ID tài nguyên là chuỗi thập phân.*

### Bước 3: Bật Cloud Phone

```bash
curl -X POST "https://api.morelogin.com/cloudphone/powerOn" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -d '{"id": "1673823102599682"}'
```

*Bật nguồn là thao tác bất đồng bộ. Phản hồi thành công chỉ xác nhận yêu cầu; hãy đợi thiết bị sẵn sàng trước khi gửi lệnh cần trạng thái trực tuyến.*

### Bước 4: Cài đặt ứng dụng

Ứng dụng được cài từ thư viện ứng dụng của nhóm, vì vậy hãy xem thư viện đang có gì:

```bash
curl -X POST "https://api.morelogin.com/cloudphone/app/page" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -d '{"pageNum": 1, "pageSize": 10}'
```

*Hãy lấy `data.dataList[0].appVersionList[0].id` làm `appVersionId` — các phiên bản trả về mới nhất trước. `id` ở cấp ứng dụng không phải giá trị mà `install` cần. Nếu `data.dataList` rỗng, hãy tải ứng dụng lên trong bảng điều khiển MoreLogin trước; không có API để khởi tạo thư viện.*

Cài bằng `appVersionId`, hoặc bằng `packageName` cùng `versionCode` khi bạn chỉ biết tên gói:

```bash
curl -X POST "https://api.morelogin.com/cloudphone/app/install" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -d '{
    "id": "1673823102599682",
    "appVersionId": "1672940217990530"
  }'
```

### Bước 5: Chạy lịch trình RPA

Liệt kê các mẫu của bạn và lấy `id` muốn chạy:

```bash
curl -X POST "https://api.morelogin.com/cloudphone/rpa/template/personal/page" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -d '{"pageNo": 1}'
```

*Dùng `data.dataList[0].id` làm `templateId` bên dưới. Mẫu được tạo trong bảng điều khiển hoặc lấy từ chợ mẫu; API chỉ liệt kê và chạy chúng.*

```bash
curl -X POST "https://api.morelogin.com/cloudphone/rpa/onceTask/save" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -d '{
    "cloudPhoneId": "1673823102599682",
    "scheduleName": "Daily Login Task",
    "templateId": "987654321"
  }'
```

## Tiếp theo là gì?

| Mục tiêu | đi tới |
|  --- | --- |
| Tài liệu tham khảo API hồ sơ trình duyệt đầy đủ | [API trình duyệt](/vi/api-reference/browser/local-api) |
| Tham chiếu API điện thoại đám mây đầy đủ | [API điện thoại đám mây](/vi/api-reference/cloud-phone/open-api) |
| Kết nối qua ADB | [Hướng dẫn kết nối ADB](/vi/api-reference/cloud-phone/adb) |