วิธีแชตกับ Google Flow Agent ผ่าน Google Flow API

อ่าน 8 นาที • 17 ตุลาคม 2026 (10 พฤศจิกายน 2026)

useapi.net เป็น API ของบุคคลที่สาม (third-party) ไม่มีส่วนเกี่ยวข้องกับ Google และไม่ได้รับการรับรองจาก Google

สารบัญ

  1. บทนำ
  2. ก่อนเริ่ม
  3. แชตทำงานอย่างไร
  4. ขั้นที่ 1: เริ่มแชต
  5. ขั้นที่ 2: รับคำตอบแบบสตรีม
  6. ขั้นที่ 3: อนุมัติการใช้เครดิต
  7. ขั้นที่ 4: ดาวน์โหลดไฟล์
  8. ขั้นที่ 5: ทำต่อหรือแก้ไข
  9. ขั้นที่ 6: อ่าน แสดงรายการ เปลี่ยนชื่อ และลบแชต
  10. ขั้นที่ 7: การตั้งค่าการอนุมัติ คำสั่ง และโมเดลเริ่มต้น
  11. ทำแบบเดียวกันจากผู้ช่วย AI
  12. ตัวอย่าง
  13. คำถามที่พบบ่อย
  14. สรุป

บทนำ

Google Flow API ของ useapi.net ทำให้โค้ดของคุณแชตกับ Google Flow Agent ได้ ซึ่งเป็นผู้ช่วยด้านงานสร้างสรรค์ที่อยู่ใน Google Flow: เริ่มแชตด้วย curl คำสั่งเดียว รับคำตอบแบบสตรีม อนุมัติสิ่งที่เอเจนต์ต้องการใช้เครดิต แล้วดาวน์โหลดภาพและวิดีโอที่มันสร้าง Google ให้ใช้ Flow Agent ได้เฉพาะในเว็บแอป Google Flow เท่านั้น ไม่มี API สาธารณะ (ข้อมูล ณ พฤศจิกายน 2026) useapi.net เป็น API ของบุคคลที่สาม ไม่มีส่วนเกี่ยวข้องกับ Google และแชตจะทำงานบนบัญชี Google Flow ของคุณ จะเป็นบัญชีฟรีหรือแบบชำระเงินก็ได้ การแชตกับเอเจนต์ไม่ใช้เครดิต ส่วนภาพและวิดีโอที่มันสร้างคิดราคาปกติของ Google Flow

คู่มือนี้คือการรันจริงหนึ่งครั้งตั้งแต่ต้นจนจบ เราขอให้เอเจนต์ถ่ายภาพสินค้าแก้วกาแฟเซรามิกสองภาพ และทำวิดีโอแก้วใบนั้นยาว 6 วินาที อนุมัติการใช้เครดิต เก็บไฟล์ผลลัพธ์ จากนั้นขอให้แก้ไขอีกครั้งและปฏิเสธการแก้ไขนั้น ทุกคำตอบด้านล่างมาจากการรันครั้งนี้ ตัดให้สั้นลงและเปลี่ยนอีเมลของบัญชีแล้ว

เอเจนต์วางแผนงานเอง มันเลือกเครื่องมือและโมเดลตามการตั้งค่าของโปรเจกต์ และเก็บบทสนทนาทั้งหมดไว้ฝั่ง Google จึงแชตต่อได้แม้ผ่านไปหลายชั่วโมงหรือหลายวันโดยบริบทยังครบ กฎและข้อจำกัดทั้งหมดอยู่ในภาพรวม Agent

ก่อนเริ่ม

คุณต้องมี API token ของ useapi.net และบัญชี Google ที่เชื่อมต่อผ่านการตั้งค่า Google Flow เอเจนต์ใช้ได้กับทุกแพ็กเกจ Google AI รวมถึงบัญชีฟรี และสิ่งที่มันสร้างได้ขึ้นกับแพ็กเกจของบัญชี เหมือนกับ POST /images และ POST /videos

แต่ละเทิร์นใช้แคปต์ชาหนึ่งครั้ง ซึ่ง API แก้ให้ด้วยผู้ให้บริการแคปต์ชาของคุณ หรือเครดิตแคปต์ชาฟรีของบัญชีแรก คุณไม่ต้องส่งอะไรเพิ่มสำหรับเรื่องนี้

ขั้นตอนต่อไปนี้ใช้ curl, jq และตัวแปร shell สามตัว:

export USEAPI_TOKEN="user:12345-..."   # API token ของ useapi.net
export EMAIL="[email protected]"           # บัญชี Google Flow ที่เชื่อมต่อแล้ว
API="https://api.useapi.net/v1/google-flow/agent"

ทุกคำสั่งด้านล่างมีอยู่ใน Postman collection ด้วย

แชตทำงานอย่างไร

หนึ่งเทิร์น (turn) คือข้อความหนึ่งข้อความจากคุณ กับทุกอย่างที่เอเจนต์ทำเพื่อตอบ แชตหนึ่งรันทีละเทิร์น:

  1. POST /agent/chats เริ่มแชต และตอบ 202 พร้อม chatId
  2. GET /agent/chats/chatId/stream ติดตามเอเจนต์แบบสดผ่าน Server-Sent Events
  3. เมื่อเอเจนต์ต้องการใช้เครดิต มันจะหยุดและถาม POST /agent/chats/chatId/approval ใช้ตอบ
  4. POST /agent/chats/chatId/messages ส่งข้อความถัดไป
  5. GET /agent/chats/chatId อ่านแชตทั้งหมด พร้อมลิงก์ไฟล์ใหม่

ขั้นที่ 1: เริ่มแชต

ส่งโจทย์ในฟิลด์ message คำสั่งจะตอบกลับทันทีที่ Google รับเทิร์น ซึ่งปกติใช้เวลาไม่กี่วินาที และอาจนานถึงราว 100 วินาที จึงควรตั้ง timeout ของ curl ไว้ 150 วินาที:

curl -s --max-time 150 -X POST "$API/chats" \
  -H "Authorization: Bearer $USEAPI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "'"$EMAIL"'",
    "message": "Create two product shots of a matte sage-green ceramic coffee mug on a light oak table in soft morning window light, square format, with Nano Banana 2.1. Then make one 6 second video of the same mug with steam slowly rising from the coffee, with Omni 1.1 Flash."
  }'

ของเราตอบ 202 ภายในราว 10 วินาที:

{
  "chatId": "c-u12345-email:[email protected]:74262ac8-a54f-4ad7-80d7-3d44a4d6c6c1-chat:55023a0f-5e70-4545-bb4a-d878038dcf35-bot:google-flow",
  "email": "[email protected]",
  "turn": 1,
  "status": "running"
}

chatId ระบุบัญชีและโปรเจกต์ไว้แล้ว คำสั่งถัดไปจึงไม่ต้องส่งทั้งสองอย่าง มันมี : และ @ จึงต้องเข้ารหัส URL เมื่อใส่ในพาธ เก็บไว้ทั้งสองรูปแบบ:

CHATID="c-u12345-email:[email protected]:74262ac8-...-bot:google-flow"
CHAT=$(jq -rn --arg v "$CHATID" '$v|@uri')

ถ้าไม่ระบุ projectId แชตจะอยู่ในโปรเจกต์เอเจนต์ของบัญชีเอง ซึ่งสร้างขึ้นตอนแชตครั้งแรกและตั้งชื่อประมาณ My Agents Work Fri, Oct 16 ช่วยแยกงานของเอเจนต์ออกจากไฟล์อื่นใน Google Flow ของคุณ คุณยังแนบภาพได้สูงสุด 7 ภาพ วิดีโอ 1 รายการ เสียง 5 เสียง และตัวละคร 7 ตัว กับข้อความใดก็ได้ โดยใช้ไวยากรณ์ @ แบบเดียวกับ POST /videos ดู POST /agent/chats

ขั้นที่ 2: รับคำตอบแบบสตรีม

เปิดสตรีมด้วย -N เพื่อให้อีเวนต์แสดงทันทีที่มาถึง EventSource ของเบราว์เซอร์ส่งเฮดเดอร์ Authorization ไม่ได้ ในแอปจึงควรใช้ fetch() หรือ HTTP client ตัวใดก็ได้:

curl -s -N "$API/chats/$CHAT/stream" \
  -H "Authorization: Bearer $USEAPI_TOKEN"

สตรีมใหม่จะส่งอีเวนต์ chat ก่อน เล่นประวัติแชตซ้ำ แล้วส่ง replayed ทุกอย่างหลัง replayed เป็นแบบสด ในกรณีนี้เทิร์นแรกจบไปแล้วตอนเราเชื่อมต่อ จึงมาในส่วนที่เล่นซ้ำ เอเจนต์บอกแผนของมัน แล้วขออนุญาตใช้ 10 เครดิตสำหรับภาพ 2 ภาพและวิดีโอ 1 รายการ (ตัด ui และฟิลด์ยาวอื่นออก):

event: chat
data: {"chatId":"c-u12345-email:[email protected]:74262ac8-...-bot:google-flow","status":"waiting_approval","turns":1}

id: 1:505e78d7-bd79-4938-b0ec-8117bdb933dc
event: message
data: {"id":"1:505e78d7-...","turn":1,"items":[{"kind":"text","text":"I'm going to generate two images of a matte sage-green ceramic coffee mug, then I'll create a 6-second video of the same mug with rising steam using Omni 1.1 Flash."}]}

id: 1:00c21a03-a687-4173-9fd9-190fcdf2447b
event: message
data: {"id":"1:00c21a03-...","turn":1,"items":[{"kind":"tool_call","tool":"open_chat_panel","args":{"_synthetic":true}},{"kind":"tool_call","tool":"ask_for_permission","args":{"num_total":3,"total_cost":10,"num_videos":1,"num_images":2}}]}

id: 1:approval
event: approval
data: {"turn":1,"cost":10,"images":2,"videos":1,"total":3}

event: replayed
data: {"turns":1}

อีเวนต์ที่คุณต้องจัดการ:

อีเวนต์ ความหมาย
message ข้อความที่สมบูรณ์หนึ่งข้อความของเอเจนต์: ข้อความ ความคิด การเรียกเครื่องมือ และผลของเครื่องมือ
approval เอเจนต์ขออนุญาตก่อนใช้เครดิต Flow จำนวน cost
turn เทิร์นจบแล้ว: completed, waiting_approval หรือ failed พร้อม error
media ภาพหรือวิดีโอที่เอเจนต์สร้าง หรือการเปลี่ยนสถานะของมัน พร้อม url เมื่อเป็น completed

keepalive มาทุก 15 วินาที สตรีมเดียวครอบคลุมทั้งแชตข้ามทุกเทิร์น จึงเปิดค้างไว้ระหว่างที่คุณอนุมัติและส่งข้อความได้ ถ้าหลุด ให้เชื่อมต่อใหม่โดยใส่ id ล่าสุดในเฮดเดอร์ Last-Event-ID แล้วมันจะต่อจากจุดเดิม เทิร์นยังทำงานต่อแม้คุณปิดสตรีม จึงไม่มีอะไรหาย

ขั้นที่ 3: อนุมัติการใช้เครดิต

ในโหมดอนุมัติ ask เอเจนต์จะหยุดก่อนใช้อะไรก็ตาม status ของแชตเป็น waiting_approval และอีเวนต์ approval แสดงค่าใช้จ่าย ตอบด้วย approve, always หรือ reject ภายในราว 4 นาที:

curl -s --max-time 150 -X POST "$API/chats/$CHAT/approval" \
  -H "Authorization: Bearer $USEAPI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "decision": "approve" }'

ตั้งแต่ Google เปลี่ยน Flow Agent เมื่อ 10 พฤศจิกายน 2026 คำตอบจะต่อเนื่องในเทิร์นที่ถาม (ในที่นี้คือเทิร์น 1 ไม่ใช่เทิร์น 2 ใหม่) และ Google รับคำตอบเฉพาะตอนที่เทิร์นนั้นยังเปิดอยู่ ราว 4 นาทีหลังคำขอ คำตอบที่ช้ากว่านั้นจะได้ 409: ให้ส่งข้อความอีกครั้ง หรือตั้งโปรเจกต์เป็น approval: "auto" ในขั้นที่ 7 เพื่อให้เอเจนต์ไม่ถามอีก การรันด้านล่างบันทึกไว้ก่อนการเปลี่ยนแปลงนี้ คำตอบจึงเริ่มเทิร์น 2 และชื่อเครื่องมือในนั้น (generate_video_from_text) ตอนนี้จะแสดงเป็น generate_image และ generate_video

คำตอบทำให้เอเจนต์กลับไปทำงานต่อ:

{
  "chatId": "c-u12345-email:[email protected]:74262ac8-...-bot:google-flow",
  "email": "[email protected]",
  "turn": 2,
  "status": "running"
}

บนสตรีมที่เปิดอยู่ เทิร์น 2 ส่งวิดีโอเข้าคิว สร้างภาพทั้งสอง และจบภายในราว 30 วินาที choices ของเอเจนต์ (Option 1, Option 2) คือไทล์ที่เว็บแอป Google Flow แสดงสำหรับแต่ละผลลัพธ์:

id: 2:5feb253e-0848-422a-bcb8-936995b3c0df
event: message
data: {"id":"2:5feb253e-...","turn":2,"items":[{"kind":"tool_result","tool":"generate_video_from_text","result":{"status":"queued","media_id":"5732c66d-a971-4cd0-92d2-508ef0aecc07","display_name":"Steam rising from coffee mug","model_key":"abra_t2v_6s","aspect_ratio":"VIDEO_ASPECT_RATIO_LANDSCAPE"}}]}

id: 2:m:5732c66d-a971-4cd0-92d2-508ef0aecc07
event: media
data: {"turn":2,"referenceId":"user:12345-email:6a6f...-video:5732c66d-a971-4cd0-92d2-508ef0aecc07","mediaId":"5732c66d-a971-4cd0-92d2-508ef0aecc07","type":"video","status":"queued","tool":"generate_video_from_text","model":"abra_t2v_6s","displayName":"Steam rising from coffee mug"}

id: 2:m:377ecb33-ab2c-4bce-92d4-7bfcf53a9af2
event: media
data: {"turn":2,"referenceId":"user:12345-email:6a6f...-image:377ecb33-ab2c-4bce-92d4-7bfcf53a9af2","mediaId":"377ecb33-ab2c-4bce-92d4-7bfcf53a9af2","type":"image","status":"completed","tool":"generate_image","displayName":"Ceramic coffee mug on table","url":"https://flow-content.google/image/377ecb33-...?Expires=...&Signature=..."}

id: 2:4e37b051-c49c-4331-bc0c-06ccc539b950
event: message
data: {"id":"2:4e37b051-...","turn":2,"items":[{"kind":"text","text":"I've generated your two product shots. Your 6-second video has been scheduled and is waiting in the queue due to high demand. Feel free to check back in a few minutes."}]}

id: 2:end
event: turn
data: {"turn":2,"status":"completed"}

always อนุมัติและเปลี่ยนโปรเจกต์เป็นโหมด auto ด้วย เอเจนต์จึงหยุดถามในทุกแชตของโปรเจกต์ reject คือปฏิเสธ ดูได้ในขั้นที่ 5 ระหว่างที่คำขอรออยู่ ข้อความใหม่จะได้ 409: ให้ตอบคำขอก่อน

ขั้นที่ 4: ดาวน์โหลดไฟล์

ภาพพร้อมเมื่อเทิร์นจบ วิดีโอมักเสร็จหลังจากนั้นหนึ่งถึงสองนาที และเมื่อเสร็จ สตรีมจะส่งอีเวนต์ media ครั้งที่สองสำหรับวิดีโอ ของเรามาถึงไม่ถึงหนึ่งนาทีหลังเทิร์นจบ:

id: 2:m:5732c66d-a971-4cd0-92d2-508ef0aecc07
event: media
data: {"turn":2,"referenceId":"user:12345-email:6a6f...-video:5732c66d-a971-4cd0-92d2-508ef0aecc07","mediaId":"5732c66d-a971-4cd0-92d2-508ef0aecc07","type":"video","status":"completed","tool":"generate_video_from_text","model":"abra_t2v_6s","displayName":"Steam rising from coffee mug","url":"https://flow-content.google/video/5732c66d-...?Expires=...&Signature=...","durationSec":6}

ดาวน์โหลดแต่ละ url ขณะที่ลิงก์ยังใหม่:

curl -s -L -o mug-steam.mp4 "https://flow-content.google/video/5732c66d-...?Expires=...&Signature=..."

ลิงก์ชี้ไปที่ Google และหมดอายุราว 6 ชั่วโมงหลังออก อ่านแชตอีกครั้งด้วย GET /agent/chats/chatId เพื่อรับลิงก์ใหม่ หรือขอลิงก์ของรายการเดียวจาก GET /assets/mediaGenerationId ด้วย referenceId ของมัน referenceId ยังใช้เป็น referenceImage_N หรือ referenceVideo_1 ได้ใน POST /images, POST /videos และข้อความถัดไปถึงเอเจนต์ ภาพทั้งสองและวิดีโอ 1280×720 อยู่ในตัวอย่าง

การรันนี้ใช้ 10 เครดิต: ภาพ Nano Banana 2.1 สองภาพใช้ 0 บนแพ็กเกจของบัญชีนี้ และวิดีโอ Omni 1.1 Flash 6 วินาทีใช้ 10

ขั้นที่ 5: ทำต่อหรือแก้ไข

ส่งข้อความถัดไปไปยังแชตเดิม Google เก็บบทสนทนาไว้ เอเจนต์จึงรู้ว่า “วิดีโอนั้น” คือวิดีโอไหน:

curl -s --max-time 150 -X POST "$API/chats/$CHAT/messages" \
  -H "Authorization: Bearer $USEAPI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "message": "Nice. Revise the video: make it 8 seconds, with a slow camera push-in toward the mug while the steam rises." }'

มันตอบ 202 พร้อม "turn": 3 และเอเจนต์ขออนุญาตอีกครั้ง คราวนี้ 12 เครดิต:

id: 3:approval
event: approval
data: {"turn":3,"cost":12,"images":0,"videos":1,"total":1}

id: 3:end
event: turn
data: {"turn":3,"status":"waiting_approval"}

เรามีวิดีโอแล้ว จึงปฏิเสธ:

curl -s --max-time 150 -X POST "$API/chats/$CHAT/approval" \
  -H "Authorization: Bearer $USEAPI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "decision": "reject" }'

เทิร์น 4 จบด้วยคำตอบหนึ่งข้อความ ไม่มีภาพหรือวิดีโอใหม่ และไม่มีการใช้เครดิต:

id: 4:91e06fb7-ba5b-4e32-b2a6-ce210be491ba
event: message
data: {"id":"4:91e06fb7-...","turn":4,"items":[{"kind":"text","text":"I've cancelled that generation. Are there any changes you'd like to make to the prompt or concept before we try again?"}]}

id: 4:end
event: turn
data: {"turn":4,"status":"completed"}

การส่งข้อความขณะเทิร์นกำลังทำงานจะได้ 409 จึงควรรออีเวนต์ turn ก่อน ถ้าต้องการเลือกตัวเลือกหนึ่งของเอเจนต์ ให้ส่งข้อความของตัวเลือกนั้นเป็นข้อความถัดไป เหมือนที่เว็บแอป Google Flow ทำ

ขั้นที่ 6: อ่าน แสดงรายการ เปลี่ยนชื่อ และลบแชต

อ่านแชตทั้งหมดจาก Google ได้ทุกเมื่อ แต่ละเทิร์นมีข้อความของคุณ ทุกอย่างที่เอเจนต์ทำ และไฟล์พร้อมลิงก์ใหม่:

curl -s "$API/chats/$CHAT" -H "Authorization: Bearer $USEAPI_TOKEN"

แชตของเราหลังสี่เทิร์น (ตัดรายการ agent และ media ให้สั้นลง ตัด ui ออก):

{
  "chatId": "c-u12345-email:[email protected]:74262ac8-...-bot:google-flow",
  "email": "[email protected]",
  "projectId": "74262ac8-a54f-4ad7-80d7-3d44a4d6c6c1",
  "title": "Sage Green Ceramic Mug Concept",
  "created": "2026-10-18T00:47:54.000Z",
  "updated": "2026-10-18T00:50:47.236Z",
  "status": "idle",
  "pendingApproval": null,
  "lastError": null,
  "turns": [
    {
      "turn": 1,
      "message": { "text": "Create two product shots of a matte sage-green ceramic coffee mug ...", "references": [] },
      "agent": [
        { "kind": "text", "text": "I'm going to generate two images of a matte sage-green ceramic coffee mug, then I'll create a 6-second video ..." },
        { "kind": "tool_call", "tool": "ask_for_permission", "args": { "num_total": 3, "total_cost": 10, "num_videos": 1, "num_images": 2 } }
      ],
      "media": []
    },
    {
      "turn": 2,
      "message": { "text": "Approve", "references": [] },
      "agent": [
        { "kind": "tool_call", "tool": "generate_video_from_text", "args": { "duration": 6, "aspect_ratio": "16:9", "model_display_name": "Omni 1.1 Flash", "prompt": "Cinematic product video of a matte sage-green ceramic coffee mug ..." } },
        { "kind": "tool_call", "tool": "generate_image", "args": { "aspect_ratio": "1:1", "prompt": "A professional product shot of a matte sage-green ceramic coffee mug ..." } },
        { "kind": "text", "text": "I've generated your two product shots. Your 6-second video has been scheduled ..." }
      ],
      "media": [
        { "referenceId": "user:12345-email:6a6f...-video:5732c66d-...", "type": "video", "status": "completed", "model": "abra_t2v_6s", "displayName": "Steam rising from coffee mug", "url": "https://flow-content.google/video/5732c66d-...", "durationSec": 6 },
        { "referenceId": "user:12345-email:6a6f...-image:377ecb33-...", "type": "image", "status": "completed", "displayName": "Ceramic coffee mug on table", "url": "https://flow-content.google/image/377ecb33-..." },
        { "referenceId": "user:12345-email:6a6f...-image:a2d3cd0c-...", "type": "image", "status": "completed", "displayName": "Ceramic coffee mug on wooden sur…", "url": "https://flow-content.google/image/a2d3cd0c-..." }
      ]
    },
    { "turn": 3, "message": { "text": "Nice. Revise the video: make it 8 seconds, ...", "references": [] }, "agent": ["..."], "media": [] },
    {
      "turn": 4,
      "message": { "text": "Reject", "references": [] },
      "agent": [{ "kind": "text", "text": "I've cancelled that generation. Are there any changes you'd like to make to the prompt or concept before we try again?" }],
      "media": []
    }
  ]
}

Google ตั้งชื่อแชตให้เอง status เป็น idle เมื่อไม่มีอะไรทำงานอยู่ และ pendingApproval เก็บค่าใช้จ่ายไว้ระหว่างที่เอเจนต์รอ ใส่ ?media=false เพื่ออ่านเร็วขึ้นโดยไม่รีเฟรชลิงก์

แสดงรายการแชตของบัญชี เรียงตามกิจกรรมล่าสุดก่อน รายการมาจาก Google จึงรวมแชตที่เริ่มในเว็บแอป Google Flow ในโปรเจกต์เดียวกันด้วย และเป็นวิธีหา chatId ที่หายไป:

curl -s "$API/chats?email=$EMAIL" -H "Authorization: Bearer $USEAPI_TOKEN"

เปลี่ยนชื่อแชต ชื่อใหม่จะแสดงในเว็บแอป Google Flow ด้วย:

curl -s -X PATCH "$API/chats/$CHAT" \
  -H "Authorization: Bearer $USEAPI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "title": "Sage mug product shoot" }'
{
  "chatId": "c-u12345-email:[email protected]:74262ac8-...-bot:google-flow",
  "title": "Sage mug product shoot"
}

จากนั้นรายการเป็นดังนี้:

{
  "chats": [
    {
      "chatId": "c-u12345-email:[email protected]:74262ac8-...-chat:55023a0f-...-bot:google-flow",
      "email": "[email protected]",
      "title": "Sage mug product shoot",
      "created": "2026-10-18T00:47:54.000Z",
      "updated": "2026-10-18T00:51:01.773Z",
      "running": false
    },
    {
      "chatId": "c-u12345-email:[email protected]:74262ac8-...-chat:1d9d42ed-...-bot:google-flow",
      "email": "[email protected]",
      "title": "Stylish Female Character Action Sequence",
      "created": "2026-10-17T03:50:34.000Z",
      "updated": "2026-10-17T04:57:26.375Z",
      "running": false
    }
  ]
}

ลบบทสนทนาของแชต จะได้ 204 โดยไม่มี body แชตหายไปจากรายการและจากเว็บแอป Google Flow ส่วนภาพและวิดีโอที่มันสร้างยังอยู่ในโปรเจกต์:

curl -s -X DELETE "$API/chats/$CHAT" -H "Authorization: Bearer $USEAPI_TOKEN"

การเปลี่ยนชื่อและการลบจะได้ 409 ระหว่างที่เทิร์นกำลังทำงาน

ขั้นที่ 7: การตั้งค่าการอนุมัติ คำสั่ง และโมเดลเริ่มต้น

แต่ละโปรเจกต์ Google Flow มีการตั้งค่าเอเจนต์ เหมือนแผงเอเจนต์ในเว็บแอป Google Flow GET /agent/settings อ่านค่าเหล่านี้ และแสดงรายการโมเดลภาพและวิดีโอที่แพ็กเกจ Google ของบัญชีมี พร้อมราคาภาพหนึ่งภาพหรือวิดีโอหนึ่งรายการบนแพ็กเกจนั้น:

curl -s "$API/settings?email=$EMAIL" -H "Authorization: Bearer $USEAPI_TOKEN"

PUT /agent/settings เปลี่ยนเฉพาะฟิลด์ที่คุณส่ง ก่อนการรัน เราตั้งโหมด ask และค่าเริ่มต้นไว้:

curl -s -X PUT "$API/settings" \
  -H "Authorization: Bearer $USEAPI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "'"$EMAIL"'",
    "approval": "ask",
    "imageDefaults": { "model": "nano-banana-2", "aspectRatio": "1:1", "count": 2 },
    "videoDefaults": { "model": "omni-flash", "aspectRatio": "16:9", "count": 1 }
  }'

คำตอบคือการตั้งค่าของโปรเจกต์หลังการเปลี่ยน:

{
  "projectId": "74262ac8-a54f-4ad7-80d7-3d44a4d6c6c1",
  "approval": "ask",
  "instructions": [],
  "imageDefaults": { "model": "nano-banana-2", "aspectRatio": "1:1", "count": 2 },
  "videoDefaults": { "model": "omni-flash", "aspectRatio": "16:9", "count": 1 },
  "models": {
    "image": [
      { "model": "nano-banana-pro", "label": "Nano Banana Pro", "credits": 0 },
      { "model": "nano-banana-2-lite", "label": "Nano Banana 2 Lite", "credits": 0 },
      { "model": "nano-banana-2", "label": "Nano Banana 2.1", "credits": 0 }
    ],
    "video": [
      { "model": "omni-flash", "label": "Omni 1.1 Flash", "credits": 4 },
      { "model": "veo-3.1-lite", "label": "Veo 3.1 - Lite", "credits": 5 },
      { "model": "veo-3.1-fast", "label": "Veo 3.1 - Fast", "credits": 10 },
      { "model": "veo-3.1-quality", "label": "Veo 3.1 - Quality", "credits": 100 }
    ]
  }
}

credits คือราคาต่ำสุดของภาพหนึ่งภาพหรือวิดีโอหนึ่งรายการบนแพ็กเกจของบัญชี วิดีโอที่ยาวขึ้นหรือความละเอียดสูงขึ้นจึงแพงกว่า: วิดีโอ Omni 1.1 Flash 6 วินาที 720p ของเราใช้ 10 และเวอร์ชันแก้ไข 8 วินาทีจะใช้ 12 แพ็กเกจของคุณอาจแสดงตัวเลขต่างไป ฟิลด์การตั้งค่า:

  • approval: ask (เอเจนต์หยุดและแสดงค่าใช้จ่าย) หรือ auto (ใช้เครดิตโดยไม่ถาม)
  • instructions: คำสั่งประจำสูงสุด 3 ข้อที่เอเจนต์ทำตามในทุกแชตของโปรเจกต์ แต่ละข้อแนบภาพอ้างอิงได้ อาร์เรย์นี้แทนที่คำสั่งเดิมของโปรเจกต์ จึงต้องส่งรายการทั้งหมด
  • imageDefaults และ videoDefaults: โมเดล อัตราส่วนภาพ และจำนวนที่เอเจนต์ใช้เมื่อข้อความไม่ได้ระบุเป็นอย่างอื่น เลือกจาก models

การตั้งค่ามีผลกับทุกแชตในโปรเจกต์ รวมถึงแชตในเว็บแอป Google Flow

ทำแบบเดียวกันจากผู้ช่วย AI

MCP server ของ Google Flow แบบโฮสต์ให้ Claude Code, Cursor, VS Code และ MCP client อื่นใช้แชตเดียวกันนี้ในรูป 12 เครื่องมือ โดยไม่ต้องติดตั้งอะไร ใน Claude Code:

claude mcp add --transport http useapi-google-flow https://api.useapi.net/v1/google-flow/mcp --header "Authorization: Bearer YOUR_API_TOKEN"

จากนั้นขอภาพแก้วจากผู้ช่วยด้วยภาษาธรรมดา ผู้ช่วยส่งโจทย์ด้วย flow_agent_chat และตอบคำขอใช้เครดิตของเอเจนต์ด้วย flow_agent_answer_approval เซิร์ฟเวอร์นี้อยู่ใน MCP Registry ทางการในชื่อ net.useapi/google-flow

ถ้าอยากเห็นไคลเอนต์แชตที่สมบูรณ์ก่อน เปิดเดโมสด วาง API token เลือกบัญชี แล้วแชตกับเอเจนต์ได้เลย พร้อมภาพและวิดีโอในแชต ไฟล์แนบ การ์ดอนุมัติ และการตั้งค่า ซอร์สโค้ดเป็นไฟล์เล็ก ๆ ห้าไฟล์ ไม่ต้องบิลด์ อยู่บน GitHub ที่ google-flow-api/demo และหน้า Agent Live Demo จับคู่แต่ละฟีเจอร์กับคำสั่ง API ของมัน

ตัวอย่าง

ผลงานจากการรันครั้งนี้ ไม่ได้แก้ไข พรอมต์เขียนโดยเอเจนต์เองจากโจทย์ของเรา

Nano Banana 2.1 » ภาพสินค้าแก้วสีเขียวเสจสองภาพ (เทิร์น 2)
ผลลัพธ์จาก Google Flow Agent: แก้วเซรามิกสีเขียวเสจแบบด้านบนโต๊ะไม้โอ๊กสีอ่อนในแสงเช้านุ่ม ๆ สร้างด้วย Nano Banana 2.1
Option 1, "Ceramic coffee mug on table"
ผลลัพธ์จาก Google Flow Agent: ภาพใกล้ของแก้วสีเขียวเสจที่มีกาแฟ ช้อนทองเหลือง และหนังสือที่เปิดอยู่ในแดดเช้า สร้างด้วย Nano Banana 2.1
Option 2, ภาพใกล้

ทั้งสองภาพเป็น JPEG 1024×1024 ใช้ 0 เครดิตบนแพ็กเกจของบัญชีนี้

Omni 1.1 Flash » ไอน้ำลอยขึ้นจากแก้ว 6 วินาที (เทิร์น 2)

1280×720 มีเสียง 6 วินาที 10 เครดิต

บทความที่เกี่ยวข้อง: วิดีโอ Veo 3.1 ผ่าน Google Flow API, วิดีโอพร้อมเสียงในตัวด้วย Omni Flash และภาพ Nano Banana ผ่าน Google Flow API

คำถามที่พบบ่อย

  • มี API ของ Google Flow Agent ไหม? ผ่าน useapi.net มี: Agent API เริ่มแชต สตรีมคำตอบผ่าน Server-Sent Events ตอบการอนุมัติ และส่งภาพและวิดีโอกลับมา ใช้ได้กับทุกแพ็กเกจ Google AI รวมถึงบัญชีฟรี Google ให้ใช้ Flow Agent เฉพาะในเว็บแอป Google Flow ไม่มี API สาธารณะของตัวเอง (ข้อมูล ณ พฤศจิกายน 2026)
  • แชตกับ Google Flow Agent มีค่าใช้จ่ายเท่าไร? ผ่าน useapi.net การแชตไม่ใช้เครดิต Flow ส่วนสิ่งที่เอเจนต์สร้างคิดราคาปกติของ Google Flow ซึ่งโหมด ask แสดงให้เห็นก่อนใช้จริง วิดีโอ Omni 1.1 Flash 6 วินาที 720p ในการรันนี้ราคา $0.08 บน Google AI Ultra $199.99 เทียบกับ $0.61 บน Gemini API ทางการ (ข้อมูล ณ พฤศจิกายน 2026)
  • แชตที่เริ่มในเว็บแอป Google Flow แสดงใน API ไหม? ผ่าน useapi.net แสดง ถ้าอยู่ในโปรเจกต์เดียวกัน GET /agent/chats แสดงรายการแชตเหล่านั้น และทุก endpoint ด้านบนใช้กับแชตเหล่านั้นได้ แชตที่เริ่มผ่าน API ก็แสดงในเว็บแอปด้วย ส่ง projectId จาก GET /assets/projects/email เพื่อทำงานในโปรเจกต์อื่นที่ไม่ใช่โปรเจกต์ของเอเจนต์เอง
  • ใช้ webhook แทนการเปิดสตรีมค้างไว้ได้ไหม? ผ่าน useapi.net ได้ ส่ง replyUrl ใน POST /agent/chats คำสั่งส่งข้อความ หรือคำสั่งอนุมัติ แล้ว API จะส่ง POST หนึ่งครั้งเมื่อเทิร์นจบ พร้อมข้อความ ไฟล์ สถานะ และคำขออนุมัติที่ค้างอยู่ของเทิร์นนั้น วิดีโอมักมาถึงตอนที่ยังเป็น queued จึงควรเอาลิงก์ของมันจาก GET หรือจากอีเวนต์ media ของสตรีม
  • มีข้อจำกัดอะไรบ้าง? ผ่าน useapi.net แชตหนึ่งรันทีละเทิร์น บัญชีหนึ่งรันได้พร้อมกันสูงสุด 3 เทิร์น และเทิร์นหนึ่งนานได้สูงสุด 10 นาที ซึ่งเป็นข้อจำกัดของ Google เอง Google ยังจำกัดจำนวนข้อความถึงเอเจนต์ต่อบัญชีต่อวันโดยไม่เปิดเผยตัวเลข และ API จะตอบ 429 สำหรับบัญชีนั้นจนถึงเที่ยงคืน UTC ดูข้อจำกัด

สรุป

ติดต่อเราได้ที่ Discord Server หรือ Telegram Channel สำหรับทุกคำถามและข้อสงสัยด้านการใช้งาน

ดูตัวอย่างโค้ดได้ใน GitHub repo ของเรา รวมถึงไคลเอนต์แชตของเอเจนต์ใน demo/

ผู้ช่วย AI ก็แชตกับ Google Flow Agent แทนคุณได้: MCP server ของ Google Flow แบบโฮสต์ใช้ได้กับ Claude Code, Cursor และ VS Code บนบัญชี Google Flow ของคุณ

เริ่มใช้งาน API

การสมัครสมาชิกเดือนละ $15 ใช้ได้กับทุก API บน useapi.net ใช้ Token เดียวกับทุกบริการ เชื่อมบัญชีของคุณเองได้สูงสุด 3 บัญชีต่อบริการ แต่ละบัญชีใช้แพ็กเกจของเว็บไซต์นั้นเอง ส่วน useapi.net ดูแล REST API การกระจายโหลด และการ polling ให้ ต้องการบัญชีมากกว่านี้? สมัครเพิ่มแต่ละครั้งเดือนละ $10 และได้เพิ่มอีก 3 บัญชีต่อบริการ

สมัครสมาชิก — $15/เดือน ชำระด้วยคริปโต

ไม่มีบัตรเครดิตที่ใช้จ่ายต่างประเทศได้? สมัครด้วยคริปโตก็ได้ (การชำระด้วยคริปโตขอคืนเงินไม่ได้) ดูราคาและแพ็กเกจสำหรับปริมาณมากได้ที่หน้าการสมัครสมาชิก ถ้าชำระผ่าน Stripe ขอคืนเงินเต็มจำนวนได้ภายใน 14 วันหลังซื้อครั้งแรก หากสร้างงานสำเร็จไม่ถึง 50 ครั้ง สมัครไว้แล้ว? เปลี่ยนจำนวนได้ที่ Stripe Customer Portal โดยไม่ต้องซื้อใหม่