Slack
დაუკავშირეთ PRX Slack-ს ბოტის OAuth ტოკენებით, Socket Mode-ით რეალურ დროში მოვლენებისთვის და თრედული საუბრის მხარდაჭერით.
წინაპირობები
- Slack-ის სამუშაო სივრცე, სადაც აპლიკაციების დაყენების ნებართვა გაქვთ
- Slack აპლიკაცია, შექმნილი api.slack.com/apps-ზე
- ბოტის ტოკენი (
xoxb-...) და არასავალდებულოდ აპლიკაციის დონის ტოკენი (xapp-...) Socket Mode-ისთვის
სწრაფი დაყენება
1. Slack აპლიკაციის შექმნა
- გადადით api.slack.com/apps-ზე და დააწკაპუნეთ "Create New App"
- აირჩიეთ "From scratch" და მიუთითეთ თქვენი სამუშაო სივრცე
- "OAuth & Permissions"-ში დაამატეთ ეს ბოტის სკოპები:
chat:write,channels:history,groups:history,im:history,mpim:historyfiles:read,files:write,reactions:write,users:read
- დააყენეთ აპლიკაცია თქვენს სამუშაო სივრცეში და დააკოპირეთ Bot User OAuth Token (
xoxb-...)
2. Socket Mode-ის ჩართვა (რეკომენდებული)
- "Socket Mode"-ში ჩართეთ და შექმენით აპლიკაციის დონის ტოკენი (
xapp-...)connections:writeსკოპით - "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_token | String | სავალდებულო | Slack ბოტის OAuth ტოკენი (xoxb-...) |
app_token | String | null | აპლიკაციის დონის ტოკენი (xapp-...) Socket Mode-ისთვის. ამის გარეშე უკან ბრუნდება პოლინგზე |
channel_id | String | null | ბოტის შეზღუდვა ერთ არხზე. გამოტოვეთ ან მიუთითეთ "*" ყველა არხში მოსასმენად |
allowed_users | [String] | [] | Slack მომხმარებლის ID-ები. ცარიელი = ყველას უარყოფა. "*" = ყველას დაშვება |
interrupt_on_new_message | bool | false | ჩართვისას იგივე გამგზავნის ახალი შეტყობინება აუქმებს მიმდინარე მოთხოვნას |
thread_replies | bool | true | ჩართვისას პასუხები წყაროს თრედში რჩება. გამორთვისას პასუხები არხის ძირში მიდის |
mention_only | bool | false | ჩართვისას მხოლოდ @-მოხსენიებებს პასუხობს. პირადი შეტყობინებები ყოველთვის მუშავდება |
ფუნქციები
- 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 ტიპები არის მხარდაჭერილი - ზომის ლიმიტებს აღემატებული ფაილები ჩუმად გამოტოვდება