Я использую этот Slack API user.getPresence для отображения онлайн-статуса пользователя, независимо от того, активен он или нет.Я использую другой API, users.info, для получения информации о пользователях.Эти два API принимают параметр идентификатора пользователя, который взят из API channel.info, который не показан ниже.
Прямо сейчас у меня есть два отдельных API, поэтому users.info получает имя и адрес электронной почты для всех пользователей, а users.getPresence просто возвращает статус для всех пользователей канала.
Это два API, которые я пытаюсь соединить вместе:
def users_getPresence():
url = 'https://slack.com/api/users.getPresence'
headers = {'Accept': 'application/x-www-form-urlencoded'}
users = channels_info() # the user IDs from channels.info
result = []
for user in users:
payload = {
'token': API_KEY,
'user': user
}
r = requests.get(url, headers=headers, params=payload)
if r.status_code == 200:
# returns only the presence of 'active' or 'away'
result.append(r.json()['presence'])
else:
return None
return result
def users_info():
url = 'https://slack.com/api/users.info'
headers = {'Accept': 'application/x-www-form-urlencoded'}
users = channels_info() # the user IDs from channels.info
names = []
emails = []
# loops for every user
for user in users:
payload = {
'token': API_KEY,
'user': user
}
r = requests.get(url, headers=headers, params=payload)
name = r.json()['user']['real_name'] # the name of the user
email = r.json()['user']['profile'].get('email') # the email of the user
if r.status_code == 200:
# This is to ignore the users that don't have an email field
if email is not None:
names.append(name)
emails.append(email)
else:
return None
# result returns the name and email of the users
return names, emails
Я хочу сначала проверить users.getPresence, чтобы увидеть, какие идентификаторы пользователей имеют активный«статус, а затем взять эти« активные »идентификаторы пользователей и использовать их в users.info, чтобы получать информацию только о пользователях с« активным »статусом.Я думал, что мог бы использовать оператор if или что-то в этом роде, но я не уверен, как получить «активные» идентификаторы пользователей из users.getPresence.