Я пытаюсь найти в моей рабочей области Slack каналы с соответствующим именем, используя библиотеку Python.
Конечная цель - установить назначение каналов с помощью инструмента. Для этого API в качестве параметра требуется channel_id.
Я заметил, что функция поиска работает для некоторых названий каналов, но не работает для других. Любая помощь будет оценена.
from utils import *
import slack
def slack_get_client():
fdata = get_settings()
client = slack.WebClient(token=fdata["slack"]["token"])
return client
def slack_search_channel(query=""):
client = slack_get_client()
r = client.search_all(query=query)
if r["ok"]:
matches = r["messages"]["matches"]
for m in matches:
if m["channel"]["is_channel"] and query == m["channel"]["name"]:
channel_id = m["channel"]["id"]
return True, channel_id
return False, ""
if __name__ == "__main__":
r,c = slack_search_channel( "abc-test") # this exists
if r:
print( "channel found", c) # this is printed
else:
print( "channel not found")
r,c = slack_search_channel( "abc-debug20191009") # this also exists
if r:
print( "channel found", c)
else:
print( "channel not found") # this is printed
Примечания: * Чтобы уточнить: этот скрипт запускается от имени администратора. Я проверил, вручную войдя в систему, что он имеет доступ ко всем каналам. * Единственное отличие, которое я вижу в названии канала, это его длина. Обновлен код выше с реальными именами.