web-dev-qa-db-fra.com

portée du robot mou manquante lors de la demande d'api

J'ai créé une application lâche dans laquelle j'ai un bot. J'ai sélectionné des canaux: historique, canaux: lire, canaux: écrire sous mon étendue de permission, et j'ai également passé des étendues

"scope":"bot channel:history channel:read channel:write"

tout en faisant ma vérification oauth2 (en utilisant python), et j'ai reçu une réponse où la portée est

"scope":"identify,bot,channels:history,channels:read,channels:write"

ainsi que les jetons d'accès client et bot.

Maintenant, quand je fais un appel api pour récupérer l'historique d'une chaîne dans laquelle mon bot est invité, je reçois

{ 
  ok: false,
  error: 'missing_scope',
  needed: 'channels:history',
  provided: 'identify,bot:basic' 
}

Quelqu'un peut-il me dire où je me trompe? Comment puis-je FOURNIR la portée des canaux: historique dans mon appel api. Cela me rend vraiment fou. Dois-je utiliser le jeton d'accès client, c'est-à-dire xoxp-xxxx, au lieu du jeton de bot, c'est-à-dire xoxb-xxxx?

Merci!

13
user7278236

Pour les personnes ayant ce problème à l'avenir;

votre bot intégré a un accès complet à l'api slack, contrairement à un bot dans une application slack, car il sera utilisé publiquement. Lorsque vous avez terminé avec succès oauth2, vous devriez obtenir 2 jetons, user access token et bot token. Le user token est utilisé pour lire l'historique de n'importe quel canal/groupe, et le bot access token est utilisé pour leur écrire. Cela signifie que vous devez constamment passer de user token à bot access token dans votre application.

enter image description here

N'oubliez pas non plus que l'utilisateur du bot DOIT être membre d'un canal privé auquel vous souhaitez qu'il se connecte.

J'espère que cela pourra aider.

Ps, si quelqu'un a trouvé une meilleure façon de procéder, n'hésitez pas à répondre ci-dessous.

26
user7278236

Puisque vous ne l'avez pas mentionné: Vous devez également spécifier toutes les étendues requises sur la page d'administration de votre application Slack sous "Oauth & Permission Scopes".

2
Erik Kalkoken