# โพสต์ของผู้ใช้ X ของ Felo

POST /api/v1/data/x/user/tweets

เลือกการทำงานให้ตรงกับข้อมูลที่คุณต้องการ ทั้งห้าเอนด์พอยต์ใช้ POST และส่งคืน JSON ที่ราก โดยไม่มี wrapper `data` ร่วมกัน

ตัวอย่างทั้งหมดใช้ `FELO_API_KEY` จาก [ภาพรวม](https://openapi.felo.ai/th/docs/data-api/guides/felo-overview.md) การเรียกใช้ใช้ **ยอดคงเหลือบนแพลตฟอร์ม** ไม่ใช่ Felo Pro credits ตัวอย่างการตอบกลับมีไว้เพื่อประกอบการอธิบาย; เนื้อหาจริงและฟิลด์เสริมอาจแตกต่างกัน





## 3. รับไทม์ไลน์ของผู้ใช้

`POST /api/v1/data/x/user/tweets`

| ฟิลด์ | ประเภท | จำเป็น | ความหมาย |
|---|---|---|---|
| `username` | string | ต้องมีหนึ่งตัวระบุ | handle ของผู้ใช้, ยาวได้ถึง 100 อักขระ |
| `x_user_id` | string | ต้องมีหนึ่งตัวระบุ | ID ของผู้ใช้, ยาวได้ถึง 100 อักขระ; มีลำดับความสำคัญเหนือ `username` |
| `limit` | integer | ไม่ | 1–1,000; การใช้งานปัจจุบันใช้เป้าหมายอย่างน้อย 20 โดยค่าเริ่มต้น 20 |
| `cursor` | string | ไม่ | cursor สำหรับการแบ่งหน้า, ยาวได้ถึง 4,000 อักขระ |
| `include_replies` | boolean | ไม่ | รวมคำตอบย่อยที่ซ้อนกัน; ค่าเริ่มต้น `false` |

```bash
curl -sS --request POST "https://openapi.felo.ai/api/v1/data/x/user/tweets" \
  -H "Authorization: Bearer $FELO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"username":"OpenAI","limit":20,"include_replies":false}'
```

การตอบกลับมี `tweets`, `total`, `has_next` และ `next_cursor` การตั้ง `limit` ต่ำกว่า 20 ไม่ได้ทำให้แน่ใจว่าจะมีรายการที่ส่งคืนลดลงหรือค่าบริการน้อยลง การรวม replies อาจเพิ่มข้อมูลที่ส่งคืนและผลลัพธ์ที่คิดค่าบริการได้

### ขีดจำกัดผลลัพธ์และคำตอบย่อยที่ซ้อนกัน

`limit` คือจำนวนเป้าหมายของโพสต์ระดับบนสำหรับคำขอนี้ ไม่ใช่จำนวนผลลัพธ์ที่รับประกัน การใช้งานปัจจุบันใช้เป้าหมายอย่างน้อย 20: เป้าหมาย 20 จะอ่าน upstream page หนึ่งหน้า; เป้าหมายที่มากกว่าจะดึงอัตโนมัติได้สูงสุด 50 หน้า ก่อนแต่ละหน้า จะตรวจสอบเวลาเริ่มต้นและหยุดดึงหน้าต่อไปเมื่อเกิน 60 วินาที การตรวจสอบนี้ไม่ได้รับประกันว่าคำขอ HTTP ทั้งหมดจะเสร็จภายใน 60 วินาที

การเก็บข้อมูลยังหยุดเมื่อถึงเป้าหมาย upstream ไม่มีหน้าถัดไป หน้าว่าง หรือ cursor หายไป ดังนั้นการตอบกลับที่สำเร็จอาจมีโพสต์น้อยกว่า `limit` ใช้ `has_next` และ `next_cursor` เพื่อดำเนินต่อเมื่อมีอยู่

เมื่อ `include_replies=true` แต่ละโพสต์ที่ส่งคืนจะได้หน้าพิเศษเพิ่มได้สูงสุด 5 หน้า และตอบกลับย่อยที่ซ้อนกันได้มากสุด 100 รายการ การเก็บข้อมูลอาจหยุดก่อนเมื่อไม่มีหน้าถัดไป หน้าว่าง หรือ cursor ไม่สามารถเดินต่อได้ ตอบกลับย่อยเหล่านี้อยู่นอก `limit` และ `total` ระดับบน แต่สามารถเพิ่มผลลัพธ์ที่คิดค่าบริการได้

`replies` ที่ซ้อนกันไม่ใช่คลังคำตอบที่ครบถ้วน และไม่เปิดเผย cursor การดำเนินต่อแยกต่างหากสำหรับการเก็บข้อมูลพิเศษนี้ หากต้องการแบ่งหน้าคำตอบแยกต่างหาก ให้ใช้การทำงาน Read replies และ cursor ที่ส่งคืนมา อย่านำ cursor ของโพสต์ระดับบนมาใช้ซ้ำกับ replies



## การแบ่งหน้าและการควบคุมค่าใช้จ่าย

`total` นับอาร์เรย์ที่สอดคล้องกันใน response ปัจจุบัน: โพสต์ระดับบนสำหรับคำถามโพสต์ หรือ replies ภายในแต่ละรายการผลลัพธ์สำหรับคำถาม replies มันไม่ใช่จำนวนแมตช์ทั่วโลก จำนวน replies ทั้งหมดของโพสต์ หรือจำนวนที่คิดค่าบริการสุดท้าย

1. ส่งคำขอแรกโดยไม่ใส่ `cursor`.
2. อ่าน `has_next` และ `next_cursor` จาก response สำหรับ replies ให้อ่านในแต่ละรายการผลลัพธ์
3. หากมีหน้าถัดไปและ cursor ไม่ว่าง ให้ส่งค่าเดิมโดยไม่เปลี่ยนพร้อมกับคำค้นหาเดิม สำหรับชุด replies ให้ดำเนินต่อทีละโพสต์
4. หยุดเมื่อไม่มีหน้าถัดไป เมื่อ cursor ซ้ำ หรือเมื่อถึงขีดจำกัดหน้าหรือค่าใช้จ่ายของคุณ

เมตาดาตาการแบ่งหน้าสะท้อน response upstream ล่าสุด; collection ที่ส่งคืนอาจถูกตัดที่ขีดจำกัดผลลัพธ์ แม้แต่ `has_next=false` ก็ไม่รับประกันว่าประวัติ X หรือ replies ทั้งหมดถูกดึงแล้ว แสดงจำนวนที่ส่งคืนจริงแทนที่จะติดป้ายชุดผลลัพธ์ที่มีขอบเขตว่าเป็นข้อมูลทั้งหมดที่มีอยู่

แต่ละหน้าที่สำเร็จอาจมีค่าบริการได้ การทำงานทั้งห้านี้คิดค่าบริการตามผลลัพธ์ที่ส่งคืน ไม่ใช่ค่าธรรมเนียมต่อคำขอแบบคงที่ replies ที่ซ้อนกันและระเบียนที่ส่งคืนอื่นๆ อาจมีผลต่อจำนวนที่คิดค่าบริการ; อย่าประเมินต้นทุนจากความยาวของอาร์เรย์ระดับบนเพียงอย่างเดียว ตรวจสอบ [ราคาปัจจุบัน](https://openapi.felo.ai/api/v1/data/prices) และการใช้งานในคอนโซล ฟิลด์ออบเจ็กต์ฉบับสมบูรณ์อยู่ใน [OpenAPI schema](https://openapi.felo.ai/api/v1/data/openapi.json)
