Здравствуйте!
Никак не могу понять почему не срабатывают методы VK.Auth.logout, VK.Auth.login.
Кто может подскажите , пожалуйста.
API подключил асинхронно как и сказано в мануале
<div id="vk_api_transport"></div>
<script type="text/javascript">
window.vkAsyncInit = function() {
VK.init({
apiId: apiId
});
};
setTimeout(function() {
var el = document.createElement("script");
el.type = "text/javascript";
el.src = "https://vk.com/js/api/openapi.js?162";
el.async = true;
document.getElementById("vk_api_transport").appendChild(el);
}, 0);
</script>
Код моего компонента:
import React from "react";
import {connect} from "react-redux";
import Panel from "../../Components/Panel";
import {getStyle} from "../../tools";
import Switch from "react-switch";
import style from "./style.module.css";
import * as CONST from "../../const";
import axios from "axios";
class PanelVK extends React.Component {
fieldsVK = '' +
'photo_id, ' +
'sex, ' +
'bdate, ' +
'city, ' +
'country, ';
constructor(props) {
super(props);
this.state = {
checked: !!this.props.authData.authVK,
};
}
handleChange = (checked) => {
let self = this;
if(!!checked) {
// eslint-disable-next-line
VK.Auth.login(function(response) {
if (response.session) {
/* Пользователь успешно авторизовался */
self.setState({checked:checked});
} else {
/* Пользователь нажал кнопку Отмена в окне авторизации */
}
});
} else {
// eslint-disable-next-line
VK.Auth.logout(function(response) {
if (response.session === null) {
/* Пользователь успешно разлогинился */
self.setState({checked:checked});
} else {
// Не получилось разлогиниться
}
});
}
};
render() {
const headerContent = (
<span>
Социальные сети
<div className={getStyle('f-right')}>
<label>
<Switch
onColor="#fd6300"
onChange={this.handleChange}
checked={this.state.checked}
checkedIcon={false}
uncheckedIcon={false}
className={style['wrapperSwitch']}
/>
</label>
</div>
</span>
);
return (<Panel title={headerContent} icon={getStyle('icon-user')} headerClassName={getStyle('small')} key="1"/>)
}
}
function mapStateToProps(state) {
return {
authData: state.authenticate
}
}
function mapDispatchToProps(dispatch) {
return {}
}
export default connect(mapStateToProps, mapDispatchToProps)(PanelVK);
При переключение switch вызывается handleChange, но вызов api VK не происходит.