Javascript 为用户请求权限

Javascript 为用户请求权限,javascript,slack,slack-api,Javascript,Slack,Slack Api,我正试图使用节点API从slack中获取一些对话历史记录,而目前我在权限方面有点困难。要阅读私人频道等,我相信我需要使用X-Slack-Use向发出所有请求。但在此之前,我需要让用户对应用程序进行身份验证 我创建了一个新的斜杠命令,/digest,它向我的应用程序发出请求。然后,我需要发出以下命令以请求权限: const response = await this.slackWebClient.apps.permissions.request({ token: ...,

我正试图使用节点API从slack中获取一些对话历史记录,而目前我在权限方面有点困难。要阅读私人频道等,我相信我需要使用X-Slack-Use向发出所有请求。但在此之前,我需要让用户对应用程序进行身份验证

我创建了一个新的斜杠命令,/digest,它向我的应用程序发出请求。然后,我需要发出以下命令以请求权限:

const response = await this.slackWebClient.apps.permissions.request({
      token: ...,
      scopes: ["channels:history", "channels:read", "groups:history", "groups:read", "im:read"],
      trigger_id: triggerID,
      user: userID,
});
我想我的困难在于拿到正确的代币。传入的请求具有令牌:

[Object: null prototype] {
      token: 'yM....R',
      team_id: 'TD.....E',
      team_domain: '...',
      channel_id: 'CF.....B',
      channel_name: 'email_digest_test',
      user_id: 'UD.....Y',
      user_name: 'Ian',
      command: '/digest',
      text: '',
      response_url: 'https://hooks.slack.com/commands/TD.....E/55....62/cw....Eq',
      trigger_id: '553.....45......6.bb.............719' }
但是,如果尝试使用此选项,则会出现错误:

代码:slackclient\u平台\u错误,错误:验证无效

如果我尝试使用我的应用程序OAuth令牌xoxp-45。。。。。。。。。。。。。。。。。。。。。。。。。然后我得到一个

代码:slackclient\u平台\u错误,错误:不允许\u令牌\u类型


有人能指出我在这里可能做错了什么吗?

您发布的响应来自于slash命令请求,而不是对Oauth API的调用。它包含一个名为token的属性,但它不是Oauth令牌,而是所谓的验证令牌。验证令牌用于验证来自Slack的任何请求的真实性,而Oauth令牌用于验证从应用程序到API的请求

有关验证令牌的更详细说明,请参阅

要验证您的应用程序并获取Oauth令牌,您需要遵循所述的Oauth过程


另外,一般来说,我建议不要使用仅与工作区令牌(如)一起工作的API端点。工作区应用程序和代币从未完成测试阶段,现在正式成为遗留产品。这可能有点混乱,因为它们仍然列在所有API方法的官方列表中。但是他们都有开发者预览已结束免责声明。

感谢您对令牌字段的解释,我不知道我可以检查发起人是否在使用它。我知道第一个部分是斜杠响应——从后面用触发器id请求用户权限批准。我的应用程序已经有了我生成的Toronto,这与OAuth的不同吗?如果是这样,我可以从NodeSDK中获取OAuth吗?我在这里读到的内容建议我需要一个apps.permissions.users.request,使用permissions API,它实际上似乎在这里丢失了。我很乐意帮助您解决所有问题,但我担心这有点太多,无法通过评论来回答。建议更新您的问题或关闭此问题并发布新问题。一个一般性的评论:建议使用工作区令牌查看您的链接,它现在是遗留的,从未离开测试阶段。使用普通代币,你可以从我的答案中的链接中得到。谢谢Erik,很高兴能问更多的问题。我发现slack API中有大量的选项和方法——目前很难找到正确的问题!我会阅读你的链接,看看我是怎么做的。谢谢你在答案中添加了关于开发者预览的一点-我可能会建议他们从官方文档中删除它们,因为你是对的,这有点让人困惑。在我试图吸收的信息海洋中,很容易错过免责声明!我添加了一个后续问题,但您可能会看到它。看起来你在紧跟着松弛标签走!