Skip to content
ეს გვერდი შეიქმნა და ითარგმნა ხელოვნური ინტელექტის დახმარებით. თუ შეამჩნევთ უზუსტობას, გთხოვთ, დაგვეხმარეთ გაუმჯობესებაში. GitHub-ზე რედაქტირება

Slack

დაუკავშირეთ PRX Slack-ს ბოტის OAuth ტოკენებით, Socket Mode-ით რეალურ დროში მოვლენებისთვის და თრედული საუბრის მხარდაჭერით.

წინაპირობები

  • Slack-ის სამუშაო სივრცე, სადაც აპლიკაციების დაყენების ნებართვა გაქვთ
  • Slack აპლიკაცია, შექმნილი api.slack.com/apps-ზე
  • ბოტის ტოკენი (xoxb-...) და არასავალდებულოდ აპლიკაციის დონის ტოკენი (xapp-...) Socket Mode-ისთვის

სწრაფი დაყენება

1. Slack აპლიკაციის შექმნა

  1. გადადით api.slack.com/apps-ზე და დააწკაპუნეთ "Create New App"
  2. აირჩიეთ "From scratch" და მიუთითეთ თქვენი სამუშაო სივრცე
  3. "OAuth & Permissions"-ში დაამატეთ ეს ბოტის სკოპები:
    • chat:write, channels:history, groups:history, im:history, mpim:history
    • files:read, files:write, reactions:write, users:read
  4. დააყენეთ აპლიკაცია თქვენს სამუშაო სივრცეში და დააკოპირეთ Bot User OAuth Token (xoxb-...)

2. Socket Mode-ის ჩართვა (რეკომენდებული)

  1. "Socket Mode"-ში ჩართეთ და შექმენით აპლიკაციის დონის ტოკენი (xapp-...) connections:write სკოპით
  2. "Event Subscriptions"-ში გამოიწერეთ: message.channels, message.groups, message.im, message.mpim

3. კონფიგურაცია

toml
[channels_config.slack]
bot_token = "xoxb-your-bot-token-here"
app_token = "xapp-your-app-token-here"
allowed_users = ["U01ABCDEF"]

4. შემოწმება

bash
prx channel doctor slack

კონფიგურაციის მითითება

ველიტიპინაგულისხმევიაღწერა
bot_tokenStringსავალდებულოSlack ბოტის OAuth ტოკენი (xoxb-...)
app_tokenStringnullაპლიკაციის დონის ტოკენი (xapp-...) Socket Mode-ისთვის. ამის გარეშე უკან ბრუნდება პოლინგზე
channel_idStringnullბოტის შეზღუდვა ერთ არხზე. გამოტოვეთ ან მიუთითეთ "*" ყველა არხში მოსასმენად
allowed_users[String][]Slack მომხმარებლის ID-ები. ცარიელი = ყველას უარყოფა. "*" = ყველას დაშვება
interrupt_on_new_messageboolfalseჩართვისას იგივე გამგზავნის ახალი შეტყობინება აუქმებს მიმდინარე მოთხოვნას
thread_repliesbooltrueჩართვისას პასუხები წყაროს თრედში რჩება. გამორთვისას პასუხები არხის ძირში მიდის
mention_onlyboolfalseჩართვისას მხოლოდ @-მოხსენიებებს პასუხობს. პირადი შეტყობინებები ყოველთვის მუშავდება

ფუნქციები

  • Socket Mode -- რეალურ დროში მოვლენების მიტანა საჯარო URL-ის გარეშე (საჭიროებს app_token)
  • თრედული პასუხები -- ავტომატურად პასუხობს წყაროს თრედში
  • ფაილური დანართები -- ტვირთავს და ჩაშვებს ტექსტურ ფაილებს; ამუშავებს სურათებს 5 MB-მდე
  • მომხმარებლის საჩვენებელი სახელები -- წყვეტს Slack მომხმარებლის ID-ებს საჩვენებელ სახელებად ქეშირებით (6 საათის TTL)
  • მრავალარხიანი მხარდაჭერა -- მოსმენა რამდენიმე არხში ან ერთზე შეზღუდვა
  • აკრეფის ინდიკატორები -- აჩვენებს აკრეფის სტატუსს პასუხის გენერირებისას
  • შეწყვეტის მხარდაჭერა -- მიმდინარე მოთხოვნების გაუქმება მომხმარებლის შემდგომი შეტყობინებისას

შეზღუდვები

  • Slack შეტყობინებები 40000 სიმბოლოთი არის შეზღუდული (იშვიათად წარმოადგენს პრობლემას)
  • ფაილების ჩამოტვირთვა შეზღუდულია 256 KB-ით ტექსტისთვის და 5 MB-ით სურათებისთვის
  • მაქსიმუმ 8 ფაილის დანართი მუშავდება თითო შეტყობინებაზე
  • Socket Mode საჭიროებს connections:write სკოპს აპლიკაციის დონის ტოკენზე
  • Socket Mode-ის (app_token) გარეშე, არხი უკან ბრუნდება პოლინგზე უფრო მაღალი შეყოვნებით

პრობლემების მოგვარება

ბოტი არ იღებს შეტყობინებებს

  • შეამოწმეთ Socket Mode ჩართულია და app_token სწორია
  • შეამოწმეთ, რომ "Event Subscriptions" მოიცავს საჭირო message.* მოვლენებს
  • დარწმუნდით, რომ ბოტი მოწვეულია არხში (/invite @botname)

პასუხები თრედის ნაცვლად არხში მიდის

  • შეამოწმეთ, რომ thread_replies არ არის false-ზე მითითებული
  • თრედული პასუხები მოითხოვს ორიგინალ შეტყობინებას thread_ts-ით

ფაილური დანართები არ მუშავდება

  • დარწმუნდით, რომ ბოტს აქვს files:read სკოპი
  • მხოლოდ text/* და გავრცელებული სურათის MIME ტიპები არის მხარდაჭერილი
  • ზომის ლიმიტებს აღემატებული ფაილები ჩუმად გამოტოვდება

Released under the Apache-2.0 License.