Nestjs 卡在V2 OAuth身份验证流的第三步

Nestjs 卡在V2 OAuth身份验证流的第三步,nestjs,slack,slack-api,Nestjs,Slack,Slack Api,我已经创建了我的第一个机器人,现在我想提交到Slack App目录。 正如上面所说,我应该创建一个端点,当用户批准我的应用程序时,Slack可以到达该端点。Slack应该向我发送一个临时代码,然后我应该将其发送回OAuth API。这是相关代码(顺便说一句,这是NestJS应用程序): 但是,我得到了以下错误: { "ok": false, "error": "invalid_arguments", "respon

我已经创建了我的第一个机器人,现在我想提交到Slack App目录。 正如上面所说,我应该创建一个端点,当用户批准我的应用程序时,Slack可以到达该端点。Slack应该向我发送一个临时代码,然后我应该将其发送回OAuth API。这是相关代码(顺便说一句,这是NestJS应用程序):

但是,我得到了以下错误:

{
  "ok": false,
  "error": "invalid_arguments",
  "response_metadata": {
    "messages": [
      "[ERROR] missing required field: code"
    ]
  }
}
我做错了什么?

安德里亚

当我查看该方法的slack api定义时:

我注意到上面写着

Present arguments as parameters in application/x-www-form-urlencoded querystring or POST body. This method does not currently accept application/json.
您是否正在传递对参数进行编码的标头或url

'Content-Type': 'application/x-www-form-urlencoded',
我问的原因是如果我在浏览器中访问类似的内容

https://slack.com/api/oauth.v2.access?client_id=00000&client_secret=11111&code=33333
我真的明白了

{"ok":false,"error":"invalid_code"}
这是正确的,因为我在url参数列表中提供了一个代码-尽管是无效代码。

Andrea

当我查看该方法的slack api定义时:

我注意到上面写着

Present arguments as parameters in application/x-www-form-urlencoded querystring or POST body. This method does not currently accept application/json.
您是否正在传递对参数进行编码的标头或url

'Content-Type': 'application/x-www-form-urlencoded',
我问的原因是如果我在浏览器中访问类似的内容

https://slack.com/api/oauth.v2.access?client_id=00000&client_secret=11111&code=33333
我真的明白了

{"ok":false,"error":"invalid_code"}

这是正确的,因为我在url参数列表中提供了一个代码,尽管这是一个无效的代码。

谢谢你的提示!我能够通过使用
qs
库对
消息进行编码来完成OAuth流,方法是:
this.http.post(url,qs.stringify(grant))
感谢您的提示!我能够通过使用
qs
库对
消息进行编码来完成OAuth流,编码方式如下:
this.http.post(url,qs.stringify(grant))