Я хотел бы получить channel information
с аутентификацией Slack. Сборка в официальной библиотеке React + Slack @slack/web-api
. Но oauth_authorization_url_mismatch возникает ошибка ...
1) Войдите в систему с Slack
2) Перенаправьте на URL обратного вызова (http://localhost: 3000 / auth / slack / callback )
3) использовать webClient()
не удалось
Ошибка:
Unhandled Rejection (Error): An API error occurred: oauth_authorization_url_mismatch
Слабая область действия:
Добавить в 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);
});
}