• Есть доступ к API спортивной статистики, что с этим делать?

    AlexBrWEs
    @AlexBrWEs Автор вопроса
    с одной стороны, вроде бы все получаемые данные уже понятны, например:
    ===
    team:
    id: (с этим вопрос - идентификаторов много и в разных ветках этой структуры)
    name: (с этим вопрос - идентификаторов много и в разных ветках этой структуры)
    code:
    country:
    founded:
    national:
    logo:

    venue:
    id: (!? - вот опять)
    name: (!? - вот опять)
    address:
    city:
    capacity:
    surface:
    image:
    ===

    казалось бы все есть, но при попытке обернуть, пытался делать вот так, создавать свои классы под это хозяйство:
    создаю свои классы для html таблиц(на table, изначально хотелось на div, но показалось будет проще раскидать колонки) под это хозяйство:

    var json = {team:'col1', id:'col2', name:'col3', code:'col4', country:'col5', founded:'col6', national:'col7', logo:'col8', {venue:'col9',  id:'col2-1', name:'col3-1',  address:'col10',  city:'col11', capacity:'col12', surface:'col13', image:'col14', }}
    
    $( "<table/>", {
            class : json.item.class,
            id: json.item.id
        } ).appendTo;
    $( "<table/>", { class : json.item.class, id: json.item.id } ).html( json.item.text).appendTo


    /подсказку примерной конструкции для обертки нашел на https://ru.stackoverflow.com /
    но в итоге это не сработало((
  • Есть доступ к API спортивной статистики, что с этим делать?

    AlexBrWEs
    @AlexBrWEs Автор вопроса
    Т.к. с импортом api и его оберткой не растет кокос, уже хотелось пойти очень извращенным путём, т.е. получать json => конвертировать его в csv => импортировать в вп, но кроме того, что суть в итоге таже(нужно все ровно обернуть), кроме того json invalid

    тянутся по сути такие данные(пример одной из лиг) , как мне казалось в json формате:
    {
    get: "teams"
    parameters: {
    league: "39"
    season: "2021"
    }
    errors: [
    ]
    results: 20
    paging: {
    current: 1
    total: 1
    }
    response: [
    {
    team: {
    id: 33
    name: "Manchester United"
    code: "MUN"
    country: "England"
    founded: 1878
    national: false
    logo: "https://media.api-sports.io/football/teams/33.png"
    }
    venue: {
    id: 556
    name: "Old Trafford"
    address: "Sir Matt Busby Way"
    city: "Manchester"
    capacity: 76212
    surface: "grass"
    image: "https://media.api-sports.io/football/venues/556.png"
    }
    }
    {
    team: {
    id: 34
    name: "Newcastle"
    code: "NEW"
    country: "England"
    founded: 1892
    national: false
    logo: "https://media.api-sports.io/football/teams/34.png"
    }
    venue: {
    id: 562
    name: "St. James' Park"
    address: "St. James' Street"
    city: "Newcastle upon Tyne"
    capacity: 52389
    surface: "grass"
    image: "https://media.api-sports.io/football/venues/562.png"
    }
    }
    {
    team: {
    id: 38
    name: "Watford"
    code: "WAT"
    country: "England"
    founded: 1881
    national: false
    logo: "https://media.api-sports.io/football/teams/38.png"
    }
    venue: {
    id: 596
    name: "Vicarage Road"
    address: "Vicarage Road"
    city: "Watford"
    capacity: 22200
    surface: "grass"
    image: "https://media.api-sports.io/football/venues/596.png"
    }
    }
    {
    team: {
    id: 39
    name: "Wolves"
    code: "WOL"
    country: "England"
    founded: 1877
    national: false
    logo: "https://media.api-sports.io/football/teams/39.png"
    }
    venue: {
    id: 600
    name: "Molineux Stadium"
    address: "Waterloo Road"
    city: "Wolverhampton, West Midlands"
    capacity: 32050
    surface: "grass"
    image: "https://media.api-sports.io/football/venues/600.png"
    }
    }
    {
    team: {
    id: 40
    name: "Liverpool"
    code: "LIV"
    country: "England"
    founded: 1892
    national: false
    logo: "https://media.api-sports.io/football/teams/40.png"
    }
    venue: {
    id: 550
    name: "Anfield"
    address: "Anfield Road"
    city: "Liverpool"
    capacity: 55212
    surface: "grass"
    image: "https://media.api-sports.io/football/venues/550.png"
    }
    }
    {
    team: {
    id: 41
    name: "Southampton"
    code: "SOU"
    country: "England"
    founded: 1885
    national: false
    logo: "https://media.api-sports.io/football/teams/41.png"
    }
    venue: {
    id: 585
    name: "St. Mary's Stadium"
    address: "Britannia Road"
    city: "Southampton, Hampshire"
    capacity: 32689
    surface: "grass"
    image: "https://media.api-sports.io/football/venues/585.png"
    }
    }
    {
    team: {
    id: 42
    name: "Arsenal"
    code: "ARS"
    country: "England"
    founded: 1886
    national: false
    logo: "https://media.api-sports.io/football/teams/42.png"
    }
    venue: {
    id: 494
    name: "Emirates Stadium"
    address: "Queensland Road"
    city: "London"
    capacity: 60383
    surface: "grass"
    image: "https://media.api-sports.io/football/venues/494.png"
    }
    }
    {
    team: {
    id: 44
    name: "Burnley"
    code: "BUR"
    country: "England"
    founded: 1882
    national: false
    logo: "https://media.api-sports.io/football/teams/44.png"
    }
    venue: {
    id: 512
    name: "Turf Moor"
    address: "Harry Potts Way"
    city: "Burnley"
    capacity: 22546
    surface: "grass"
    image: "https://media.api-sports.io/football/venues/512.png"
    }
    }
    {
    team: {
    id: 45
    name: "Everton"
    code: "EVE"
    country: "England"
    founded: 1878
    national: false
    logo: "https://media.api-sports.io/football/teams/45.png"
    }
    venue: {
    id: 8560
    name: "Goodison Park"
    address: "Goodison Road"
    city: "Liverpool"
    capacity: 40569
    surface: "grass"
    image: "https://media.api-sports.io/football/venues/8560.png"
    }
    }
    {
    team: {
    id: 46
    name: "Leicester"
    code: "LEI"
    country: "England"
    founded: 1884
    national: false
    logo: "https://media.api-sports.io/football/teams/46.png"
    }
    venue: {
    id: 547
    name: "King Power Stadium"
    address: "Filbert Way"
    city: "Leicester, Leicestershire"
    capacity: 34310
    surface: "grass"
    image: "https://media.api-sports.io/football/venues/547.png"
    }
    }
    {
    team: {
    id: 47
    name: "Tottenham"
    code: "TOT"
    country: "England"
    founded: 1882
    national: false
    logo: "https://media.api-sports.io/football/teams/47.png"
    }
    venue: {
    id: 593
    name: "Tottenham Hotspur Stadium"
    address: "Bill Nicholson Way, 748 High Road"
    city: "London"
    capacity: 62062
    surface: "grass"
    image: "https://media.api-sports.io/football/venues/593.png"
    }
    }
    {
    team: {
    id: 48
    name: "West Ham"
    code: "WES"
    country: "England"
    founded: 1895
    national: false
    logo: "https://media.api-sports.io/football/teams/48.png"
    }
    venue: {
    id: 598
    name: "London Stadium"
    address: "Marshgate Lane, Stratford"
    city: "London"
    capacity: 60000
    surface: "grass"
    image: "https://media.api-sports.io/football/venues/598.png"
    }
    }
    {
    team: {
    id: 49
    name: "Chelsea"
    code: "CHE"
    country: "England"
    founded: 1905
    national: false
    logo: "https://media.api-sports.io/football/teams/49.png"
    }
    venue: {
    id: 519
    name: "Stamford Bridge"
    address: "Fulham Road"
    city: "London"
    capacity: 41841
    surface: "grass"
    image: "https://media.api-sports.io/football/venues/519.png"
    }
    }
    {
    team: {
    id: 50
    name: "Manchester City"
    code: "MAC"
    country: "England"
    founded: 1880
    national: false
    logo: "https://media.api-sports.io/football/teams/50.png"
    }
    venue: {
    id: 555
    name: "Etihad Stadium"
    address: "Rowsley Street"
    city: "Manchester"
    capacity: 55097
    surface: "grass"
    image: "https://media.api-sports.io/football/venues/555.png"
    }
    }
    {
    team: {
    id: 51
    name: "Brighton"
    code: "BRI"
    country: "England"
    founded: 1901
    national: false
    logo: "https://media.api-sports.io/football/teams/51.png"
    }
    venue: {
    id: 508
    name: "The American Express Community Stadium"
    address: "Village Way"
    city: "Falmer, East Sussex"
    capacity: 31800
    surface: "grass"
    image: "https://media.api-sports.io/football/venues/508.png"
    }
    }
    {
    team: {
    id: 52
    name: "Crystal Palace"
    code: "CRY"
    country: "England"
    founded: 1905
    national: false
    logo: "https://media.api-sports.io/football/teams/52.png"
    }
    venue: {
    id: 525
    name: "Selhurst Park"
    address: "Holmesdale Road"
    city: "London"
    capacity: 26309
    surface: "grass"
    image: "https://media.api-sports.io/football/venues/525.png"
    }
    }
    {
    team: {
    id: 55
    name: "Brentford"
    code: "BRE"
    country: "England"
    founded: 1889
    national: false
    logo: "https://media.api-sports.io/football/teams/55.png"
    }
    venue: {
    id: 10503
    name: "Brentford Community Stadium"
    address: "166 Lionel Rd N, Brentford"
    city: "Brentford, Middlesex"
    capacity: 17250
    surface: "grass"
    image: "https://media.api-sports.io/football/venues/10503.png"
    }
    }
    {
    team: {
    id: 63
    name: "Leeds"
    code: "LEE"
    country: "England"
    founded: 1919
    national: false
    logo: "https://media.api-sports.io/football/teams/63.png"
    }
    venue: {
    id: 546
    name: "Elland Road"
    address: "Elland Road"
    city: "Leeds, West Yorkshire"
    capacity: 40204
    surface: "grass"
    image: "https://media.api-sports.io/football/venues/546.png"
    }
    }
    {
    team: {
    id: 66
    name: "Aston Villa"
    code: "AST"
    country: "England"
    founded: 1874
    national: false
    logo: "https://media.api-sports.io/football/teams/66.png"
    }
    venue: {
    id: 495
    name: "Villa Park"
    address: "Trinity Road"
    city: "Birmingham"
    capacity: 42788
    surface: "grass"
    image: "https://media.api-sports.io/football/venues/495.png"
    }
    }
    {
    team: {
    id: 71
    name: "Norwich"
    code: "NOR"
    country: "England"
    founded: 1902
    national: false
    logo: "https://media.api-sports.io/football/teams/71.png"
    }
    venue: {
    id: 565
    name: "Carrow Road"
    address: "Carrow Road"
    city: "Norwich, Norfolk"
    capacity: 27606
    surface: "grass"
    image: "https://media.api-sports.io/football/venues/565.png"
    }
    }
    ]
    }


    с извращением тоже не сраслось
  • Есть доступ к API спортивной статистики, что с этим делать?

    AlexBrWEs
    @AlexBrWEs Автор вопроса
    Спасибо!
    Из третьего примера собрал такую конструкцию:

    $endpoint = $league = '3';
    $parameters = $season = '2021';
    
    $api_url = 'https://v3.football.api-sports.io/' . $person_id;
    
    $args = array(
      'headers' => array(
        'X-API-KEY' => 'тут свой ключ', 
        'Content-Type' => 'application/json',
      ),
    );
    
    $json_result = wp_remote_get( $api_url, $args );
    
    $body = json_decode( $json_result['body'] );
    var_dump( $body );


    Даже получаю данные, но это все выводится во фронт в голове - строкой json, как я понимаю, все это хозяйство из json как-то налету нужно обертывать в стиль шаблона, с этим еще справится можно, а дальше... это всего лишь лига id=3, а нужно будет получать данные по 30 лигам, соответсвенно это 30 разных id; тоже с сезонами, годы нужны будут разные; отдельными точками будут команды/игроки/судьи(условно): 30Х 15-20 - под каждую точку созадавать такую конструкцию? Видимо, что-то не то.

    Далее, из докуметации https://www.api-football.com/tutorials/4/how-to-ge... предлагвется вот такая функция:

    function call_api($endpoint, $params = []) {
    
        $parameters = '';
        if (count($params) > 0) {
            $parameters = '?'.http_build_query($params);
        }
    
        $curl = curl_init();
        curl_setopt_array($curl, array(
          CURLOPT_URL => 'https://v3.football.api-sports.io/'.$endpoint.$parameters,
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => '',
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 0,
          CURLOPT_FOLLOWLOCATION => true,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => 'GET',
          CURLOPT_HTTPHEADER => array(
            'x-rapidapi-key: YOUR_API_KEY_HERE'
          ),
        ));
        $response = curl_exec($curl);
        $response = json_decode($response);
        curl_close($curl);
        return $response;
    }
    
    function players_data($league, $season, $page = 1, $players_data = []) {
    
        $players = call_api('players', ['league' => $league, 'season' => $season, 'page' => $page]);
        $players_data = array_merge($players_data, $players->response);
    
        if ($players->paging->current < $players->paging->total) {
    
            $page = $players->paging->current + 1;
            if ($page%2 == 1) {
                sleep(1);
            }
            $players_data = players_data($league, $season, $page, $players_data);
        }
        return $players_data;
    }
    
    // Get all the teams from this competition
    $teams = call_api('teams', ['league' => 3, 'season' => 2021]);
    var_dump($teams); // To display the results if necessary
    
    // Get all the players from this competition
    $players = players_data(3, 2021);
    var_dump($players); // To display the results if necessary


    вроде бы все классно, но перевести в вп функцию как-то не соображу, а в чистом виде вставляя в function.php таже история(но рабочий результат конечно ожидается другой, с пагинацией) что и с примером вверху =выводятся json данные на фронте, но уже ни строкой а заполняют экран, тоже нужно обернуть.
  • Есть доступ к API спортивной статистики, что с этим делать?

    AlexBrWEs
    @AlexBrWEs Автор вопроса
    Знакомлюсь непосредственно с документацией конкретного API: https://www.api-football.com/documentation-v3#sect...:
    1. 623c771ad1b3e544660458.jpeg
    2. 623c7749913f2447141699.jpeg
    3. 623c7819d16be388319231.jpeg
    По возможности можете подсказать, комментарий по поводу того, как я это понимаю и буду подключать, пока из документации к API я выяснил только какими конкретными значениями(именами) заменить конечные точки. Но по сути, выходит, что всё подключение пойдет мимо вп((, т.е. создается отдельный php файл - Request2.php(скриню2), вероятно в папке шаблона: /wp-content/themes/имя-темы , а вот с cURL(скриню1) - куда мне его прописать? С Http (скрин.3) как я понял - это заголовки, прописать непосредственно в структуре шаблона.

    В итоге, даже если все это хозяйство заработает, в чем я пока не уверен, то как мне напрвиить на запись в бд? Вариант с переименованием файлов в псевдо-структуру вп и подключением в вп-конфиг, тоже не оч.

    Второй день голова кругом, как все это дело связать и запустить?
  • Есть доступ к API спортивной статистики, что с этим делать?

    AlexBrWEs
    @AlexBrWEs Автор вопроса
    Спасибо за подсказку, кое-какой момент на счет методов и документации для себя выделил.