Как отправить application / x-www-form-urlencoded в slack через python slackclient? - PullRequest
1 голос
/ 11 июля 2019

Я пытаюсь использовать вызов API users.profile.get, чтобы найти изображение профиля пользователя. Проблема в том, что для запроса требуется не JSON, а запросы в кодировке URL (я думаю?). У меня уже есть идентификатор пользователя, но мне нужно знать, как правильно отправить его на провисание, желательно с помощью метода api_call. Как мне это сделать?

Вот документация: https://api.slack.com/methods/users.profile.get

for users in collection.find():
                start_date, end_date = users['start_date'], users['end_date']

                user_data = client.api_call('users.profile.get',
                                            """What would I do here?""")
                user_images[users['user_id']] = user_data['image_72']
                block.section(
                    text=
                    f'from *{date_to_words(start_date[0], start_date[1], start_date[2])}* to *{date_to_words(end_date[0], end_date[1], end_date[2])}*'
                )
                block.context(data=((
                    'img', user_images[users['user_id']],
                    '_error displaying image_'
                ), ('text',
                    f'<!{users["user_id"]}>. _Contact them if you have any concerns_'
                    )))

1 Ответ

1 голос
/ 11 июля 2019

Вы можете передать параметры API в качестве аргументов имен в вызове функции.

Для users.get.profile вы хотите указать идентификатор пользователя, например, "U1245678".

Тогда ваш вызов будет выглядеть так (с slackclient v1):

response = sc.api_call(
  "users.profile.get",  
  user="U12345678"
)
assert response["ok"]
user_data = response["profile"]

Или так с slackclient v2:

response = sc.users_profile_get(user="U12345678")
assert response["ok"]
user_data = response["profile"]

Чтобы ответить на ваш вопрос: вам не о чем беспокоитьсякак называется API, так как это обрабатывается библиотекой.Но технически большинство конечных точек API Slack принимают параметры как в виде URL-адреса, так и в формате JSON.

...