Slack - получить слабый идентификатор пользователя по имени пользователя [дубликат]

Вопрос был:

Как вернуть ответ от асинхронного вызова?

, который может быть интерпретирован как:

Как сделать синхронный асинхронный код синхронным?

Решение будет состоять в том, чтобы избежать обратных вызовов и использовать комбинацию Promises и async / await.

Я хотел бы привести пример для запроса Ajax.

(Хотя он может быть записан в Javascript, я предпочитаю писать его на Python и компилировать его в Javascript, используя Transcrypt . Это будет достаточно ясно.)

Позволяет сначала включить использование JQuery, чтобы $ был доступен как S:

__pragma__ ('alias', 'S', '$')

Определить функцию, которая возвращает Promise, в этом случае вызов Ajax:

def read(url: str):
    deferred = S.Deferred()
    S.ajax({'type': "POST", 'url': url, 'data': { },
        'success': lambda d: deferred.resolve(d),
        'error': lambda e: deferred.reject(e)
    })
    return deferred.promise()

Использовать асинхронный код, как если бы он был синхронным:

async def readALot():
    try:
        result1 = await read("url_1")
        result2 = await read("url_2")
    except Exception:
        console.warn("Reading a lot failed")

12
задан Allan de Queiroz 1 April 2015 в 13:43
поделиться

5 ответов

0
ответ дан HariKishore 1 September 2018 в 07:03
поделиться

Недокументированный API может выполнить это задание: https://slack.com/api/auth.findUser?team= & amp; email = & amp; token = xoxp-XXXXXXXXX

2
ответ дан sai.xu 1 September 2018 в 07:03
поделиться

В настоящее время вы можете искать пользователей только с помощью users.info по их идентификатору.

Альтернативным решением вашей проблемы будет вызов users.list и фильтрация в вашем клиенте с помощью profile.email в зависимости от того, какой адрес электронной почты вы ищете.

12
ответ дан seanrose 1 September 2018 в 07:03
поделиться

Да!

https://slack.com/api/users.lookupByEmail

Используя это, мы можем найти пользователя, если доступен идентификатор электронной почты.

Подробнее: https: / /api.slack.com/methods/users.lookupByEmail

7
ответ дан Shree Harsha S 1 September 2018 в 07:03
поделиться

Если это выполняется от имени команды Slack slash, можно настроить команду на расширение @username, #channels и т. д. ...

Это можно сделать в разделе команд приложения Slack. См. Следующий снимок экрана:

0
ответ дан sshaw 1 September 2018 в 07:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: