Slack API не возвращает приватные каналы - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь получить список частных каналов в Slack (для каждого пользователя это нормально), но у меня возникают проблемы с просмотром этой информации.Первоначально я установил свое приложение в рабочую область в Slack и получил токен OAuth в виде xoxp-4............

Токен OAuth приложения

Когда я пытаюсь использовать слабый API (node ​​SDK), я получаю только общедоступные каналы.

await new WebClient(`xoxp-4.....`)
    .conversations       
    .list({ exclude_archived: true })
).channels

Я получаю то же самое, если пытаюсь использовать тестер Slack API для захвата списка каналов .

Маркер OAuth пользователя
Я следовал за OAuth 2.0 процесс получения токена для данного пользователя (меня самого).Я думаю, что я сделал все это правильно (вот ответ):

{
        ok: true,
        access_token: 'xoxp-4.........',
        scope: 'identify,bot,commands,channels:history,groups:history,im:history,mpim:history,channels:read,emoji:read,groups:read,im:read,search:read,team:read,users:read,users:read.email,usergroups:read,users.profile:read,chat:write:user,chat:write:bot,links:read',
        user_id: 'UD......',
        team_name: '............',
        team_id: '.......',
        scopes: ['identify',
            'bot',
            'commands',
            'channels:history',
            'groups:history',
            'im:history',
            'mpim:history',
            'channels:read',
            'emoji:read',
            'groups:read',
            'im:read',
            'search:read',
            'team:read',
            'users:read',
            'users:read.email',
            'usergroups:read',
            'users.profile:read',
            'chat:write:user',
            'chat:write:bot',
            'links:read'
        ]
    }

Интересно, я обнаружил, что это дает мне точно такой же токен OAuth, если я иду в управление приложениями (я полагаю, потому что это яустановил приложение в рабочую область).

Очевидно, что из-за того же токена я не получаю разрешения на просмотр приватных каналов, хотя, насколько мне известно, я могу это сделать.все, что я могу сделать как пользователь?

Может кто-нибудь указать мне, что я могу упустить?

1 Ответ

0 голосов
/ 18 февраля 2019

Причина, по которой вы не получаете частные каналы, заключается в том, что вы не запрашиваете их.

Метод conversations.list возвращает общедоступные каналы только по умолчанию.Чтобы также получить приватные каналы, необходимо установить параметр types соответственно.например, types = public_channel,private_channel.

Аналогично вызову channels.list.Channels.list будет возвращать только общедоступные каналы.Если вы хотите получить частные каналы, вам нужно позвонить groups.list.(обратите внимание, что частные каналы называются группами в API по историческим причинам).

В общем, я бы рекомендовал использовать conversations.list, который является более мощным и рекомендуемым подходом для получения всех типов разговоров.

...