---
title: "Nhận tệp từ URL"
locale: vi
url: https://tlg.builera.app/docs/reference/rest/files.import_url
verified: 2026-10-24
app_version: "2.0"
generated: true
---

# Nhận tệp từ URL

Cách thứ hai: đưa `url` HTTPS công khai (hoặc `file` của host, ví dụ ChatGPT `{ download_url }`); máy chủ tự tải (cổng 443, không user:pass, không theo chuyển hướng, tối đa 20 giây) rồi kiểm như files.complete_upload và trả `storagePath`. URL không được lưu lại.

Cách thứ hai: đưa `url` HTTPS công khai (hoặc `file` của host, ví dụ ChatGPT `{ download_url }`); máy chủ tự tải (cổng 443, không user:pass, không theo chuyển hướng, tối đa 20 giây) rồi kiểm như files.complete_upload và trả `storagePath`. URL không được lưu lại.

## Thông tin

| Tên | Giá trị |
| --- | --- |
| Mã | `files.import_url` |
| Scope cần | `messages.send` |
| Mức | Ghi |
| Có thể cần xác nhận | Không |
| Kiểu chạy | Trả kết quả ngay |
| Cần `Idempotency-Key` | Không |
| Vai trò thành viên được phép | `owner`, `manager`, `agent` |
| Trong app | Agent (Build 2.1) |

## Trường vào

| Trường | Kiểu | Bắt buộc | Mô tả |
| --- | --- | --- | --- |
| `purpose` | `"message" \| "story" \| "photo" \| "campaign"` | Có |   |
| `accountId` | `uuid` | Không |   |
| `campaignId` | `uuid` | Không |   |
| `url` | `uri` | Không |   |
| `file` | `đối tượng` | Không |   |
| `fileName` | `chữ` | Không |   |
| `mime` | `chữ` | Không |   |

## Ví dụ gọi

```bash
curl -X POST https://tlg.builera.app/api/public/v2/ops/files.import_url \
  -H "Authorization: Bearer $TELEGRAM_AUTO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"purpose":"message"}'
```

## Trường ra (`data`)

| Trường | Kiểu | Bắt buộc |
| --- | --- | --- |
| `ok` | `true` | Có |
| `uploadId` | `chữ` | Có |
| `status` | `"expired" \| "pending" \| "checking" \| "ready" \| "rejected" \| "used"` | Có |
| `purpose` | `"message" \| "campaign" \| "photo" \| "story"` | Có |
| `accountId` | `null \| chữ` | Có |
| `campaignId` | `null \| chữ` | Có |
| `fileName` | `chữ` | Có |
| `storagePath` | `null \| chữ` | Có |
| `kind` | `null \| "video" \| "photo" \| "audio" \| "voice" \| "document"` | Có |
| `mime` | `null \| chữ` | Có |
| `size` | `null \| số` | Có |
| `sha256` | `null \| chữ` | Có |
| `code` | `null \| chữ` | Có |
| `uploadExpiresAt` | `chữ` | Có |
| `readyExpiresAt` | `null \| chữ` | Có |
| `usedAt` | `null \| chữ` | Có |

## Ví dụ trả về

```json
{
  "data": {
    "ok": true,
    "uploadId": "00000000-0000-4000-8000-000000000000",
    "status": "expired",
    "purpose": "message",
    "accountId": "00000000-0000-4000-8000-000000000000",
    "campaignId": "00000000-0000-4000-8000-000000000000",
    "fileName": "text",
    "storagePath": "text",
    "kind": "video",
    "mime": "text",
    "size": 1,
    "sha256": "text",
    "code": "text",
    "uploadExpiresAt": "2026-10-22T12:00:00.000Z",
    "readyExpiresAt": "2026-10-22T12:00:00.000Z",
    "usedAt": "2026-10-22T12:00:00.000Z"
  }
}
```

## Dùng qua MCP

Không có tên sẵn trong profile nào: gọi `tools_describe` rồi `tools_run` với `code: "files.import_url"`. Tên tool khi được liệt kê: `files_import_url`.
