2015-03-27 6 views
28

channels.joinnot allowed बॉट उपयोगकर्ताओं के लिए है। मैं अपने आरटीएम-बॉट का उपयोग बॉट एकीकरण पृष्ठ में सूचीबद्ध किसी अन्य के अलावा चैनलों को सुनने के लिए करना चाहता हूं।रीयल टाइम मैसेजिंग बॉट उपयोगकर्ता के रूप में स्लैक चैनल में कैसे शामिल हों?

मैं एक तरह से बॉट एकीकरण पेज में चैनल बदलने के लिए नहीं दिख रहा है:

bot integration page

यह सिर्फ बॉट की एक सीमा है या मैं यहाँ कुछ मौलिक याद आ रही है?

उत्तर

48

मुझे एक ही समस्या थी और यह सुनिश्चित नहीं था कि मेरा बॉट केवल कुछ चैनलों को क्यों सुन रहा था।

आपके बॉट को उपयोगकर्ता द्वारा प्रत्येक चैनल में आमंत्रित करने की आवश्यकता होगी। स्लैक अनुप्रयोग में आवश्यक चैनल के भीतर इस आदेश को चलाने के लिए चैनल वे तो घटनाओं को सुनने के लिए सक्षम होना चाहिए में इतना

/invite @<your_bot_name> 

एक बार ऐसा करने के लिए।

+0

टीम दृश्य को देखने पर भी आप @bot को आमंत्रित कर सकते हैं। Obviosly, जो आदेश/आमंत्रण आदेश आग;) – erm3nda

0

मैंने वास्तव में यह कोशिश नहीं की है, लेकिन मुझे उम्मीद है कि आप वास्तविक उपयोगकर्ता (उदा।, स्वयं) की तरफ से channels.join पर कॉल कर सकते हैं, फिर उस उपयोगकर्ता को उस चैनल को बॉट जोड़ने के लिए channels.invite पर कॉल करें। मुझे उम्मीद है कि इसकी अनुमति है, और फिर यह उस चैनल के साथ बातचीत करने की अनुमति देगा। इस तरह आप सबकुछ स्वचालित कर सकते हैं।

2

यह अभी भी एक बग की वजह से मई 2017 तक बॉट्स की एक सीमा है - इसे https://github.com/slackapi/node-slack-sdk/issues/26 पर पुलहमोड का जवाब देखें। बॉट जोड़ने का सही तरीका स्लैश कमांड /invite @<bot.user> <channel_name> है क्योंकि @ मैटजीफोर्ड ने बताया।

हालांकि, @nafg ने एक दिलचस्प कामकाज पेश किया। यदि आप अपने खाते के लिए एक निजी API_TOKEN उत्पन्न करते हैं, तो आप इसका उपयोग बॉट को आमंत्रित करने के लिए कर सकते हैं। उदाहरण के लिए, अजगर में एक पड़ सकते है:

import slackclient sc = slackclient.SlackClient(<PERSONAL_API_TOKEN>) sc.api_call('channels.invite', channel=<channel_id>, user=<user_id>)

इस चैनल के लिए बॉट आमंत्रित करेंगे। यदि आप अपने बॉट को नए चैनलों में आमंत्रित करना स्वचालित करना चाहते हैं, तो आप https://api.slack.com/rtm

पर पाए गए एपीआई में ईवेंट श्रोताओं को देख सकते हैं, जब तक आप उस उद्देश्य के लिए अपने API_TOKEN का उपयोग करने की अनुमति देते हैं, ऐसा लगता है कि यह आवश्यकतानुसार काम करेगा हालांकि, कम सुविधाजनक।

+0

उत्कृष्ट, एक आकर्षण की तरह काम करता है –

संबंधित मुद्दे