ข้ามไปยังเนื้อหา

เชื่อม Slack เข้ากับเวิร์กสเปซ

เมื่อจบบทสอนนี้ คุณจะมี:

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

สิ่งที่ต้องมีก่อน:

  • เวิร์กสเปซแรกของคุณ และ สั่งงานเอเจนต์ตัวแรก เสร็จแล้ว — เวิร์กสเปซที่ไม่มีเอเจนต์รับข้อความ Slack ได้ แต่ไม่มีใครตอบมัน
  • เอเจนต์ CEO ของเวิร์กสเปซมีอะแดปเตอร์และโมเดลตั้งไว้ที่ การตั้งค่า → เวิร์กสเปซ → เอเจนต์ สะพานปลุก CEO ไม่ใช่เอเจนต์ที่คุณตั้งค่าไว้ในบทสอนก่อน และเอเจนต์ที่ไม่มีอะแดปเตอร์จะรันบนลูปในตัวด้วยโมเดลเริ่มต้นของ Anthropic
  • บทบาท owner หรือ admin ในเวิร์กสเปซ Control Center (การเชื่อมต่อแอปแชทพูดแทนเวิร์กสเปซทั้งหมด)
  • สิทธิ์ในการสร้างและติดตั้งแอปในเวิร์กสเปซ Slack ของคุณ

ไม่มีอะไรในที่นี้ต้องใช้ที่อยู่สาธารณะ ทันเนล หรือพอร์ตขาเข้า Control Center เชื่อม ออก ไปยัง Slack ผ่าน Socket Mode จึงใช้งานได้จากแล็ปท็อปที่อยู่หลัง NAT

นี่คือความลับเดียวที่คุณต้องไปเอามาด้วยมือ มันทำให้ Control Center สร้างและแก้ไขแอปให้คุณได้ในภายหลัง

  1. เปิด api.slack.com/apps
  2. เลื่อนลงไปที่ส่วนโทเค็นการตั้งค่าแอปที่ด้านล่างของหน้า
  3. สร้างคู่โทเค็นสำหรับเวิร์กสเปซ Slack ของคุณ
  4. คัดลอกโทเค็น refresh — มันเริ่มต้นด้วย xoxe-
  1. ใน Control Center ไปที่ การตั้งค่า → เวิร์กสเปซ → ทั่วไป แล้วหาการ์ด สะพานแชท
  2. ในบล็อก Slack คลิก สร้างแอปให้ฉัน
  3. วางโทเค็นการตั้งค่าแอป
  4. ตรวจดูว่าบอทจะมีหน้าตาอย่างไร:
    • ชื่อแอป: ชื่อที่ Slack แสดงในรายการแอป เช่น Control Center · Acme
    • ชื่อบอท: สิ่งที่ผู้คนพิมพ์ตามหลัง @ เช่น control-center
    • คำอธิบายสั้น และ สิ่งที่บอทบอกว่าทำได้
    • คำสั่งสแลช: ค่าเริ่มต้นคือ cc คำสั่งจึงเป็น /cc
    • ข้อความตรง: เปิดไว้เพื่อให้สมาชิกส่งข้อความส่วนตัวถึงบอทได้
  5. คลิก สร้างแอป

Control Center ประกอบนิยามแอปทั้งหมดให้ — เปิด Socket Mode พร้อมสโคปของบอทและการสมัครรับเหตุการณ์ที่จำเป็น คำสั่งสแลช และแท็บ Messages — แล้วสร้างมันขึ้นใน Slack

ขั้นตอนที่ 3: ทำสองขั้นตอนที่มีเพียง Slack เท่านั้นที่ทำได้

หัวข้อที่มีชื่อว่า “ขั้นตอนที่ 3: ทำสองขั้นตอนที่มีเพียง Slack เท่านั้นที่ทำได้”

Slack ไม่มี API สำหรับสร้างโทเค็นระดับแอปหรือติดตั้งแอป ไดอะล็อกจึงยื่นทั้งสองอย่างให้คุณเป็นลิงก์:

  1. สร้างโทเค็นระดับแอป — เปิด Basic Information → App-Level Tokens สร้างโทเค็นที่มีสโคป connections:write แล้วคัดลอกมัน มันเริ่มต้นด้วย xapp-
  2. ติดตั้งแอป — เปิด Install App ติดตั้งลงในเวิร์กสเปซของคุณ แล้วคัดลอก Bot User OAuth Token มันเริ่มต้นด้วย xoxb-

เก็บค่าทั้งสองไว้ใช้ในขั้นตอนถัดไป

  1. กลับมาที่ไดอะล็อก คลิก วางข้อมูลรับรอง
  2. กรอก โทเค็นบอท (xoxb-…) และ โทเค็นระดับแอป (xapp-…)
  3. เว้น โทเค็นการตั้งค่าแอป ว่างไว้ — อันจากขั้นตอนที่ 1 ถูกเก็บไว้แล้ว (Slack หมุนเวียนมันใหม่และ Control Center บันทึกอันใหม่ไว้)
  4. คลิก เชื่อมต่อ

Control Center ตรวจสอบโทเค็นบอทกับ Slack ก่อนจะเก็บอะไรลงไป แล้วจึงเปิด socket แถวนั้นตอนนี้แสดงชื่อบอทและชื่อเวิร์กสเปซ Slack ของคุณพร้อมแท็ก สด

การเชื่อมต่อทำให้บอทเข้าถึงได้ ส่วนการลิงก์ทำให้ คุณ ถูกจดจำได้ จนกว่าตัวตน Slack ของคุณจะถูกลิงก์ บอทจะไม่ลงมือกับข้อความของคุณ — มันไม่เคยระบุข้อความว่าเป็นของคนที่ติดตั้งแอป

การลิงก์เป็นเรื่องส่วนตัว จึงอยู่คนละหน้ากับการเชื่อมต่อระดับเวิร์กสเปซ

  1. ไปที่ การตั้งค่า → เวิร์กสเปซ → โปรไฟล์และตัวตน แล้วหาการ์ด บัญชีแชทที่ลิงก์
  2. คลิก ลิงก์บัญชี Slack ของฉัน
  3. คัดลอกคำสั่งที่มันแสดง เช่น /cc link K7M2QP
  4. ใน Slack ส่งคำสั่งนั้นถึงบอททางข้อความส่วนตัว
  5. บอทตอบว่า “ลิงก์แล้ว — คุณคือ …”

รหัสนี้ใช้ได้ครั้งเดียวและหมดอายุใน 15 นาที ถ้าอีเมล Slack ของคุณตรงกับผู้ใช้ Control Center ที่เป็นสมาชิกของเวิร์กสเปซนี้อยู่แล้ว สะพานจะลิงก์คุณให้อัตโนมัติในครั้งแรกที่คุณคุยกับมัน และคุณข้ามขั้นตอนนี้ได้

ถ้าคุณกล่าวถึงบอทก่อนที่จะทำขั้นนี้เสร็จ มันจะปฏิเสธและบอกเหตุผล การปฏิเสธทั้งสามแบบนั้นต่างกัน อ่านให้ดีว่าคุณเจอแบบไหน:

  • ผู้ส่งที่ยังไม่ได้ลิงก์: บอทจะบอกวิธีลิงก์ให้ กลับมาที่ขั้นตอนนี้
  • ลิงก์แล้ว แต่ไม่ใช่สมาชิกของเวิร์กสเปซนี้: ขอให้แอดมินเชิญคุณ
  • สมาชิกที่มีบทบาทอ่านอย่างเดียว (viewer หรือ guest): บอทจะไม่เริ่มงานแทนคุณ
  1. ใน Slack เชิญบอทเข้าแชนเนล: /invite @control-center

  2. กล่าวถึงมันด้วยคำขอจริง ๆ:

    @control-center สรุป PR ที่เปิดอยู่บนรีโป api

สะพานจะ:

  1. สร้างสเปซ Control Center สำหรับเธรด Slack นั้น ตั้งชื่อตามแชนเนล Slack และคำขอของคุณ
  2. ปลุกเอเจนต์ประตูหน้าของเวิร์กสเปซ (เอเจนต์ CEO เมื่อมี ไม่อย่างนั้นก็เอเจนต์ตัวแรก)
  3. สตรีมคำตอบของเอเจนต์กลับเข้าเธรด Slack ขณะที่มันถูกเขียนขึ้น

ตอบกลับในเธรด Slack เดียวกันเพื่อคุยต่อ — ไม่ต้องกล่าวถึงอีก เพราะตอนนี้เธรด Slack เชื่อมผ่านสะพานแล้ว หรือจะส่งข้อความส่วนตัวถึงบอทแทนการใช้แชนเนลก็ได้ บทสนทนาทางข้อความส่วนตัวแต่ละอันขับสเปซ Control Center ของตัวเอง พร้อมชื่อเรื่องและบรรทัดสถานะ “กำลังคิด…” ขณะที่เอเจนต์ทำงาน

การสตรีมต้องใช้ API สตรีมของ Slack ซึ่งไม่ใช่ทุกแพ็กเกจที่มี ถ้าแอปของคุณถูกปฏิเสธ สะพานจะหยุดพยายามไปตลอดทั้งการเชื่อมต่อนั้น แล้วโพสต์คำตอบแต่ละอันเป็นข้อความเดียวแทน และการ์ดสะพานแชทจะระบุว่า “สตรีมสดปิดสำหรับแอป Slack นี้ — คำตอบมาเป็นข้อความเดียว” ส่วนอื่น ๆ ทำงานเหมือนเดิม

/cc ticket Fix the flaky login test | It fails on CI about once a day.

บอทตอบด้วยคีย์ของตั๋วงานที่มันเปิดไว้ ตั๋วงานนี้เป็นตั๋วงาน Control Center ภายในเครื่องธรรมดา ๆ ที่คุณเป็นผู้รายงาน พร้อมให้มอบหมายแก่เอเจนต์ /cc help แสดงรายการทุกอย่างที่คำสั่งนี้ทำได้

คุณสร้างแอป Slack จาก Control Center เชื่อมต่อมันผ่าน socket ขาออก ลิงก์ตัวตน Slack ของคุณกับผู้ใช้ Control Center ของคุณ และขับเอเจนต์จากเธรด Slack ทุกอย่างที่เกิดขึ้นใน Slack มีอยู่ใน Control Center ด้วย: เธรด Slack คือสเปซ คำตอบคือทรานสคริปต์ ตั๋วงานคือตั๋วงาน

ถัดไป: ตั้งค่าการผสาน Slack ครอบคลุมเส้นทางสร้างแอปด้วยตัวเอง การหมุนเวียนโทเค็น และการแก้ปัญหา สำหรับโมเดลที่อยู่เบื้องหลัง อ่าน สะพานแชท