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

QQ ​

დაუკავშირეთ PRX QQ-ს ოფიციალური Bot API-ის გამოყენებით პირადი შეტყობინებების, ჯგუფური ჩატების, გილდიებისა და მედია დანართების მხარდაჭერით.

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

  • QQ ანგარიში (პირადი ან საწარმოო)
  • ბოტის აპლიკაცია რეგისტრირებული QQ Open Platform-ზე
  • App ID და App Secret დეველოპერ კონსოლიდან
  • ბოტი უნდა იყოს დამტკიცებული და გამოქვეყნებული (sandbox რეჟიმი ხელმისაწვდომია ტესტირებისთვის)

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

1. QQ ბოტის შექმნა ​

  1. გადადით QQ Open Platform-ზე და შედით QQ ანგარიშით
  2. გადადით "Applications"-ში და შექმენით ახალი ბოტის აპლიკაცია
  3. შეავსეთ ბოტის სახელი, აღწერა და ავატარი
  4. "Development Settings"-ში დააკოპირეთ App ID და App Secret
  5. კონფიგურირეთ ბოტის intents (შეტყობინების ტიპები, რომლებიც ბოტმა უნდა მიიღოს)
  6. ტესტირებისთვის ჩართეთ sandbox რეჟიმი, რომელიც ბოტს მოსანიშნ სატესტო გილდიაზე ზღუდავს

2. კონფიგურაცია ​

დაამატეთ შემდეგი თქვენს PRX კონფიგურაციის ფაილში:

toml
[channels_config.qq]
app_id = "102012345"
app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
allowed_users = ["user_openid_1", "user_openid_2"]
sandbox = true

მიუთითეთ sandbox = false ბოტის პროდაქშენისთვის დამტკიცების შემდეგ.

3. შემოწმება ​

bash
prx channel doctor qq

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

ველიტიპინაგულისხმევიაღწერა
app_idStringსავალდებულოაპლიკაციის ID QQ Open Platform დეველოპერ კონსოლიდან
app_secretStringსავალდებულოაპლიკაციის საიდუმლო დეველოპერ კონსოლიდან
allowed_users[String][]ნებადართული მომხმარებლის OpenID-ები. ცარიელი = დაწყვილების რეჟიმი. "*" = ყველას დაშვება
sandboxboolfalseჩართვისას sandbox გეითვეისთან უკავშირდება ტესტირებისთვის
intents[String]["guilds", "guild_messages", "direct_messages"]მოვლენების intents გამოსაწერად
stream_modeString"none"სტრიმინგის რეჟიმი: "none" ან "typing". აკრეფის რეჟიმი აგზავნის აკრეფის ინდიკატორს გენერირებისას
interrupt_on_new_messageboolfalseჩართვისას იგივე გამგზავნის ახალი შეტყობინება აუქმებს მიმდინარე მოთხოვნას
mention_onlyboolfalseჩართვისას მხოლოდ @-მოხსენიებებს პასუხობს ჯგუფურ ან გილდიის არხებში. პირადი შეტყობინებები ყოველთვის მუშავდება
ack_reactionsboolმემკვიდრეობითიგლობალური ack_reactions პარამეტრის გადაფარვა. თუ მითითებული არ არის, უკან ბრუნდება [channels_config].ack_reactions-ზე

როგორ მუშაობს ​

PRX QQ Bot API-თან WebSocket-ზე დაფუძნებული მოვლენების ნაკადით უკავშირდება. კავშირის სასიცოცხლო ციკლი:

  1. ავთენტიფიკაცია -- PRX წვდომის ტოკენს იღებს App ID-ისა და App Secret-ის გამოყენებით OAuth2 კლიენტის სანდოობის მონაცემებით
  2. გეითვეის აღმოჩენა -- ბოტი WebSocket გეითვეის URL-ს ითხოვს QQ API-დან
  3. სესიის დამყარება -- WebSocket კავშირი იხსნება გეითვეისთან წვდომის ტოკენით
  4. Intent-ის გამოწერა -- ბოტი აცხადებს, რომელი მოვლენების ტიპები სურს მიიღოს
  5. მოვლენების ციკლი -- შემომავალი შეტყობინებები PRX აგენტის ციკლში გადაიგზავნება; პასუხები REST API-ით იგზავნება
QQ Gateway (WSS) ──► PRX არხის დამმუშავებელი ──► აგენტის ციკლი
                                                      │
QQ REST API ◄───── შეტყობინებით პასუხი ◄──────────────┘

ფუნქციები ​

  • გილდიისა და ჯგუფის შეტყობინებები -- პასუხობს QQ გილდიებში (არხებში) და ჯგუფურ ჩატებში
  • პირადი შეტყობინებები -- 1:1 პირადი საუბრების დამუშავება მომხმარებლებთან
  • დაწყვილების რეჟიმი -- უსაფრთხო ერთჯერადი კოდით მიბმა, როდესაც ნებადართული მომხმარებლები კონფიგურირებული არ არის
  • მედია დანართები -- სურათების, ფაილებისა და მდიდარი მედია ბარათების გაგზავნისა და მიღების მხარდაჭერა
  • Markdown პასუხები -- QQ ბოტები Markdown-ის ფორმატირების ქვეკომპლექტს მხარს უჭერს პასუხებში
  • დადასტურების რეაქციები -- შემომავალ შეტყობინებებზე რეაგირება მიღების დასადასტურებლად ჩართვისას
  • Sandbox რეჟიმი -- ბოტის ტესტირება იზოლირებულ გილდიის გარემოში პროდაქშენის განთავსებამდე
  • ტოკენის ავტომატური განახლება -- წვდომის ტოკენები ავტომატურად განახლდება ვადის გასვლამდე
  • კროსპლატფორმული -- მუშაობს QQ desktop-ზე, მობილურზე და QQ for Linux-ზე

შეტყობინების ტიპები ​

QQ Bot API მრავალ შეტყობინების შინაარსის ტიპს მხარს უჭერს:

ტიპიმიმართულებააღწერა
ტექსტიგაგზავნა / მიღებატექსტური შეტყობინებები, 2048 სიმბოლომდე
Markdownგაგზავნაფორმატირებული ტექსტი QQ-ს Markdown ქვეკომპლექტით
სურათიგაგზავნა / მიღებასურათის დანართები (JPEG, PNG, GIF)
ფაილიმიღებაფაილური დანართები მომხმარებლებისგან
მდიდარი ჩაშვებაგაგზავნასტრუქტურირებული ბარათის შეტყობინებები სათაურით, აღწერითა და ესკიზით
Ark შაბლონიგაგზავნაშაბლონზე დაფუძნებული მდიდარი შეტყობინებები QQ-ს Ark სისტემით

Intents ​

Intents აკონტროლებს, რომელ მოვლენებს იღებს ბოტი. ხელმისაწვდომი intents:

Intentმოვლენებიშენიშვნები
guildsგილდიის შექმნა, განახლება, წაშლაგილდიის მეტამონაცემების ცვლილებები
guild_membersწევრის დამატება, განახლება, ამოშლამოითხოვს ამაღლებულ ნებართვებს
guild_messagesშეტყობინებები გილდიის ტექსტურ არხებშიყველაზე გავრცელებული intent
guild_message_reactionsრეაქციის დამატება/ამოშლა გილდიებშიემოჯი რეაქციები
direct_messagesპირადი შეტყობინებები ბოტთანყოველთვის რეკომენდებული
group_and_c2cჯგუფური ჩატები და C2C შეტყობინებებიმოითხოვს ცალკე დამტკიცებას
interactionღილაკის დაწკაპუნებები და ურთიერთქმედებებიინტერაქტიული შეტყობინების კომპონენტებისთვის

შეზღუდვები ​

  • QQ Bot API რეგიონით შეზღუდულია; ბოტები ძირითადად ჩინეთის მატერიკზეა ხელმისაწვდომი
  • Sandbox რეჟიმი ბოტს ერთ სატესტო გილდიაზე ზღუდავს მცირე რაოდენობის წევრებით
  • პროდაქშენის ბოტები მოითხოვს QQ Open Platform-ის განხილვის გუნდის დამტკიცებას
  • ჯგუფური ჩატი და C2C შეტყობინებები ცალკე ნებართვის განაცხადს მოითხოვს
  • ფაილების ატვირთვა 20 MB-ით არის შეზღუდული თითო დანართზე
  • შინაარსის მოდერაცია QQ-ს მიერ აღსრულდება; აკრძალულ შინაარსის შემცველი შეტყობინებები ჩუმად იშლება
  • რეიტ ლიმიტები მოქმედებს: დაახლოებით 5 შეტყობინება წამში თითო გილდიაზე, 2 წამში პირადებისთვის
  • ბოტს არ შეუძლია საუბრების წამოწყება; მომხმარებლებმა ან ადმინისტრატორებმა ჯერ ბოტი უნდა დაამატონ

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

ბოტი QQ გეითვეისთან არ უკავშირდება ​

  • შეამოწმეთ app_id და app_secret სწორია prx channel doctor qq-ით
  • Sandbox რეჟიმის გამოყენებისას დარწმუნდით, რომ sandbox = true მითითებულია (sandbox და პროდაქშენი სხვადასხვა გეითვეის იყენებს)
  • შეამოწმეთ, რომ api.sgroup.qq.com-თან და WebSocket გეითვეისთან გამავალი კავშირები არ არის დაბლოკილი

ბოტი უკავშირდება, მაგრამ შეტყობინებებს არ იღებს ​

  • შეამოწმეთ სწორი intents კონფიგურირებულია თქვენი გამოყენების შემთხვევისთვის
  • გილდიის არხებში ბოტს შეიძლება დასჭირდეს "Receive Messages" ნებართვის მინიჭება გილდიის ადმინისტრატორის მიერ
  • შეამოწმეთ გამგზავნი მომხმარებლის OpenID allowed_users-შია, ან მიუთითეთ allowed_users = ["*"]

პასუხები არ მიტანილა ​

  • QQ შინაარსის მოდერაციას აღასრულებს; შეამოწმეთ PRX ლოგები API-დან უარყოფის პასუხებისთვის
  • დარწმუნდით, რომ ბოტს აქვს "Send Messages" ნებართვა სამიზნე გილდიაში ან ჯგუფში
  • პირადი პასუხებისთვის მომხმარებელმა ჯერ ბოტს უნდა მისწეროს საუბრის გასახსნელად

ტოკენის განახლების შეფერხებები ​

  • App Secret შეიძლება როტაცია გაიარა დეველოპერ კონსოლში; განაახლეთ კონფიგურაცია ახალი საიდუმლოთი
  • ქსელის პრობლემებმა შეიძლება ტოკენის განახლება შეაფერხოს; შეამოწმეთ კავშირი bots.qq.com-თან

დაკავშირებული გვერდები ​

Released under the Apache-2.0 License.