@jc10051953

Почему не вызываются VK.Auth.logout, VK.Auth.login?

Здравствуйте!

Никак не могу понять почему не срабатывают методы 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 не происходит.
  • Вопрос задан
  • 170 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы