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