จะทำให้ช่อง Slack อัปเดตอยู่เสมอในแอปบุคคลที่สามได้อย่างไร

ฉันเคยลองใช้ slack API เมื่อเร็ว ๆ นี้ และฉันก็เกิดโปรเจ็กต์สาธิตขึ้นมาหนึ่งโปรเจ็กต์ที่ฉันมีวิดเจ็ตแชทบางประเภท ภายในรายการแบบเลื่อนลงบน ส่วนหัว ที่เต็มไปด้วยรายการช่อง (ผ่าน การเรียก API ของ Channel.list) โดยการเลือกรายการใดรายการหนึ่ง Channels.history จะถูกเรียกให้เติมวิดเจ็ต เนื้อหา และกล่องข้อความที่ด้านล่างของ ส่วนท้าย และส่ง ปุ่มเพื่อโพสต์ข้อความใหม่ให้หย่อน .. ตอนนี้เพื่อให้เนื้อหาของวิดเจ็ตทันสมัยอยู่เสมอ i) ฉันต้องโทรพักช่องประวัติเป็นระยะ ๆ (หากในกรณีที่ใครก็ตามส่งข้อความบนแอป SLACK) และ ii) ฉัน ได้พักการโทรเมื่อผู้ใช้ส่งข้อความจากกล่องข้อความของวิดเจ็ตนี้

คำถามของฉันตอนนี้คือ: ฉันจะข้ามการโทรเป็นระยะได้อย่างไร (เพราะฉันได้รับคำเตือน 429) แทนที่จะใช้ตรรกะใด ๆ ที่จะทริกเกอร์การเรียก channel.history เฉพาะเมื่อมีข้อความใหม่มาถึงฝั่งหย่อนและไม่ใช่เป็นระยะ ๆ หรือมีวิธีใดที่ดีกว่าในการทำเช่นนี้?


person SpaceyBot    schedule 24.07.2018    source แหล่งที่มา


คำตอบ (2)


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

person Erik Kalkoken    schedule 24.07.2018

ฉันไม่คุ้นเคยกับ Slack API 100% แต่ฉันพบสิ่งนี้: API การส่งข้อความแบบเรียลไทม์

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

person Bruno Camarneiro    schedule 24.07.2018
comment
ขอบคุณ แต่จริงๆ แล้วมันไม่รองรับข้อความที่ซับซ้อน เช่น มีไฟล์แนบ ฯลฯ - person SpaceyBot; 24.07.2018
comment
นี่อาจดูซับซ้อนไปสักหน่อย แต่จะเกิดอะไรขึ้นหากคุณใช้ API การส่งข้อความแบบเรียลไทม์เพื่ออัปเดตประวัติ แต่ใช้ Web API เพื่อส่งข้อความที่ซับซ้อน - person Bruno Camarneiro; 24.07.2018