我想通过Slack身份验证获得channel information
。在React + Slack官方库@slack/web-api
中构建它。但是发生[[oauth_authorization_url_mismatch错误...
webClient()
失败错误:
Unhandled Rejection (Error): An API error occurred: oauth_authorization_url_mismatch
松弛的oauth范围:添加到Slack:
<a href={slackAuthorizeUrl}> <button className="btn btnSlack"> <img src={`${process.env.PUBLIC_URL}/assets/slack.png`} alt="slack" /> <span>Integrate with Slack</span> </button> </a>
设置:
REACT_APP_SLACK_CLIENT_ID = 'XXXXXXXXXX' REACT_APP_SLACK_CLIENT_SECRET = 'XXXXXXXXXXXX' REACT_APP_SLACK_OAUTH_SCOPE = 'channels:read,chat:write:bot' export const slackAuthorizeUrl = `https://slack.com/oauth/authorize?scope=${process.env.REACT_APP_SLACK_OAUTH_SCOPE}&client_id=${process.env.REACT_APP_SLACK_CLIENT_ID}`;
获取信息
import { WebClient } from "@slack/web-api"; let urlParamStr = window.location.search; if (urlParamStr) { urlParamStr = urlParamStr.substring(1); let params = {}; urlParamStr.split("&").forEach(param => { const temp = param.split("="); params = { ...params, [temp[0]]: temp[1] }; const { code } = params; const result = new WebClient().oauth.v2.access({ client_id: clientId, client_secret: clientSecret, code }); console.log("result", result); }); }
https://slack.com/oauth/authorize
的v1,但使用访问URL new WebClient().oauth.v2.access
的v2,这将导致此错误。尝试使用https://slack.com/oauth/v2/authorize
或WebClient().oauth.access
使两个调用使用相同的api版本。