คำถามที่ถูกถามบ่อยที่สุด

ส่งแค่ลิงก์หรือลากไฟล์มาวาง แล้วมันรู้ได้ยังไงว่าใครทำอะไร

คำตอบสั้นๆ คือเราไม่ได้รู้เอง เครื่องมือที่กลุ่มใช้บันทึกไว้อยู่แล้ว เราแค่ไปอ่านมาคำนวณ

1ข้อมูลนี้ไม่ใช่ของเรา มันเป็นของ Google อยู่แล้ว

ทุก Google Doc บันทึกอยู่แล้วว่าใครแก้อะไรตอนไหน เปิดดูเองได้ที่ ไฟล์ › ประวัติเวอร์ชัน

AURA FARM ไม่ได้สร้างข้อมูลใหม่ และไม่ได้แอบดูใคร มันแค่อ่านสิ่งที่ทุกคนในกลุ่มเปิดดูได้อยู่แล้ว แล้วคำนวณให้

ไฟล์ Word ที่เปิด Track Changes ก็เป็นเรื่องเดียวกัน เปิดดูเองได้ที่ รีวิว › การเปลี่ยนแปลง ต่างกันแค่ข้อมูลอยู่ในตัวไฟล์ ไม่ได้อยู่บนคลาวด์

สิ่งที่ Google เก็บไว้อยู่แล้ว
  • ปอ31 ก.ค. 02:14
  • ปอ30 ก.ค. 23:40
  • มิ้น24 ก.ค. 21:08
  • ปอ23 ก.ค. 01:55
  • เจ22 ก.ค. 20:31
สิ่งที่ AURA FARM คำนวณออกมา
  • ปอ+6,106
    🔥 คนแบก
  • มิ้น-980
    🚌 ผู้โดยสาร
  • เจ-1,125
    🚌 ผู้โดยสาร
  • แบงค์-2,000
    👻 ชื่ออยู่ ตัวไม่อยู่
  • ตาล-2,000
    👻 ชื่ออยู่ ตัวไม่อยู่

ตารางซ้ายเป็นภาพประกอบเชิงโครงสร้างของหน้าประวัติเวอร์ชัน ไม่ใช่ screenshot จริง ตอนขึ้นเวทีให้เปิดเอกสารจริงเทียบข้างจอเลยจะหนักแน่นกว่า

2ต้องล็อกอินกี่คน — คนเดียว

สมาชิกคนใดคนหนึ่งที่เข้าถึงเอกสารได้ ล็อกอิน Google หนึ่งครั้ง

ไม่ต้องให้ทุกคนสมัคร ไม่ต้องให้ทุกคนกดอะไร เพราะ Google บันทึกชื่อผู้แก้ไขไว้กับตัวเอกสาร ไม่ได้บันทึกไว้กับบัญชีของแต่ละคน

ขอสิทธิ์แค่ drive.readonly และ drive.activity.readonly อ่านอย่างเดียว แก้ไขอะไรไม่ได้

3เส้นแบ่งจริงไม่ใช่ Google — คือมีบันทึกหรือไม่มี

ระบบนี้ไม่ได้ผูกกับ Google เลย มันผูกกับคำถามเดียวคือ เครื่องมือนั้นบันทึกไหมว่าใครแก้อะไรตอนไหน ถ้าบันทึก เราอ่านได้ ไม่ว่าจะเป็น API บนคลาวด์หรือไฟล์ในเครื่อง

ไฟล์ Word ที่เปิด Track Changes เก็บ w:ins และ w:del พร้อม w:author และ w:date ไว้ในตัวไฟล์เอง ลากไฟล์มาวางก็คำนวณได้ทันที ไม่ต้อง OAuth ไม่ต้องต่อเน็ต

เครื่องมือไหนอ่านได้ เครื่องมือไหนอ่านไม่ได้

เครื่องมือมีบันทึกผู้แก้ไข?สถานะ
Google Docs / Slides / SheetsDrive Activity + Revisions API ใช้ได้
Word ที่เปิด Track Changesw:ins / w:del ในไฟล์เอง ใช้ได้ ลากไฟล์มาวาง
Word Online / OneDrive / SharePointMicrosoft Graph driveItem/versions ใช้ได้ ต้องมี token
GitHubcommits ใช้ได้
Word ในเครื่อง ไม่เปิด Track Changesรู้แค่คนที่เซฟล่าสุด ทำไม่ได้
Canva / Figmaมี version history แต่ API ไม่เปิดรายละเอียด ยังไม่รองรับ
ส่งไฟล์กันทาง LINEไม่มีบันทึกอะไรเลย ทำไม่ได้

AURA FARM ไม่ได้ผูกกับ Google มันผูกกับ "ร่องรอยที่มีชื่อและเวลา" เครื่องมือไหนบันทึกไว้ เราอ่านได้หมด เครื่องมือไหนไม่บันทึก ไม่มีใครอ่านได้ รวมทั้งเรา

4ถ้าเป็น Google Docs อ่านจากสอง API คนละหน้าที่

APIให้อะไรใช้ทำอะไรในสูตร
Drive Activity API v2เหตุการณ์แก้ไข: ใคร + เมื่อไหร่consistency — งานกระจายตามเวลาหรือกระจุกคืนสุดท้าย
Drive Revisions API v3สแนปช็อตเอกสาร + lastModifyingUser + exportLinksvolume — ดึงแต่ละ revision เป็น text/plain แล้ว diff คู่ติดกัน
  1. ลิงก์เอกสาร
  2. fileId
  3. Activity API + Revisions API
  4. Edit[]
  5. scoring.ts
  6. aura + gini
  7. มีม

5ขอ token ยังไง ถ้าอยากลองกับเอกสารจริง

โหมดปกติของระบบไม่ต้องใช้ token เลย — ลากไฟล์ .docx ที่เปิด Track Changes มาวางก็คำนวณได้ทันที ส่วนการอ่านลิงก์ Google Docs หรือ SharePoint ต้องมี token เพราะเป็นการเข้าถึงบัญชีของคุณเอง คัดลอก .env.example เป็น .env.local แล้วเติมค่า จากนั้นรีสตาร์ท dev server

Google Docs — 4 ขั้นตอน

  1. เปิด Google OAuth 2.0 Playground
  2. ช่อง scope ใส่ drive.readonly และ drive.activity.readonly
  3. กด Authorize APIs แล้วเลือกบัญชีที่เข้าถึงเอกสารนั้นได้
  4. กด Exchange authorization code for tokens แล้วคัดลอก access token ไปใส่ GOOGLE_OAUTH_ACCESS_TOKEN

SharePoint / OneDrive — 3 ขั้นตอน

  1. เปิด Microsoft Graph Explorer แล้ว sign in ด้วยบัญชีที่เข้าถึงไฟล์ได้
  2. แท็บ Modify permissions › consent ให้ Files.Read.All และ Sites.Read.All
  3. แท็บ Access token › คัดลอกไปใส่ MICROSOFT_GRAPH_ACCESS_TOKEN

token จากสองเครื่องมือนี้หมดอายุใน 1 ชั่วโมง เหมาะกับการลองและการเดโม่ ไม่เหมาะกับการใช้งานจริงระยะยาว ถ้าจะใช้ยาวต้องทำ refresh token flow เอง และ อย่า commit ไฟล์ .env.local ขึ้น git เด็ดขาด .gitignore กันไว้ให้แล้ว

6ข้อจำกัดของแหล่งข้อมูล — เขียนให้ครบ อย่าซ่อน

  • Google รวบ revision ไม่ได้เก็บทุกการกดแป้น หนึ่ง revision อาจครอบคลุมการพิมพ์ทั้ง session ระบบจึงวัดในระดับ session ไม่ใช่ระดับตัวอักษรแบบเรียลไทม์
  • ถ้าสองคนพิมพ์พร้อมกัน revision ที่ถูกรวบอาจติดชื่อผู้แก้ไขคนเดียว เราจึงใช้ Activity API มาถ่วง เพราะมันรายงาน actor ได้หลายคนในช่วงเวลาเดียว แล้วหารปริมาณของ revision นั้นให้ทุกคนที่มีร่องรอยในช่วงเดียวกัน
  • การแก้ไขโดยไม่ล็อกอิน (แชร์แบบ "ทุกคนที่มีลิงก์") จะไม่มีชื่อผู้แก้ไข ระบบนับเป็น unattributed และตัดออกจากการคำนวณ พร้อมแจ้งเตือนบนหน้าจอว่าตัดไปกี่ revision
  • ถ้าทั้งกลุ่มใช้บัญชีเดียวกันแก้เอกสาร ระบบแยกคนไม่ได้ จะแจ้งเตือนและปฏิเสธการวิเคราะห์ ไม่เดาให้
  • ฝั่ง Word: ถ้าไม่ได้เปิด Track Changes ไว้ เปิดย้อนหลังไม่ได้ ไฟล์นั้นเหลือข้อมูลแค่ว่าใครเซฟล่าสุด และถ้าเคยสั่ง "ลบข้อมูลส่วนบุคคล" ชื่อผู้แก้ไขจะกลายเป็น Author ทั้งหมด ระบบจะปฏิเสธไฟล์แล้วบอกวิธีปิดค่านั้น
  • ชื่อใน Word คือชื่อโปรไฟล์ Office ไม่ใช่อีเมล ระบบจึงให้แก้ชื่อ → สมาชิกบนหน้าจอก่อนกดวิเคราะห์ทุกครั้ง