Powered by Prisma CMS

Читайте все статьи на prisma-cms.com

10 дек. 2018 г., 16:14

Преобразование json в php/js для вывода числа Яндекс.Метрика API

В блоге Песочница

Здравствуйте! Прошу заранее прощения, мягко говоря не профи в программировании.

Создал токен API Яндекс.Метрики, вывожу количество посетителей

<?php $url = 'https://api-metrika.yandex.ru/stat/v1/data'; $params = [ 'ids' => 'НОМЕР_СЧЕТЧИКА', 'oauth_token' => 'ТОКЕН', 'metrics' => 'ym:s:visits' ]; echo file_get_contents( $url . '?' . http_build_query($params) ); Вот что показывает на странице, если вывести этот сниппет: {"query":{"ids":[20814241],"dimensions":[],"metrics":["ym:s:visits"],"sort":["-ym:s:visits"],"date1":"2018-12-04","date2":"2018-12-10","limit":100,"offset":1,"group":"Week","auto_group_size":"1","quantile":"50","offline_window":"21","attribution":"Last","currency":"RUB"},"data":[{"dimensions":[],"metrics":[21.0]}],"total_rows":1,"total_rows_rounded":false,"sampled":false,"sample_share":1.0,"sample_size":21,"sample_space":21,"data_lag":283,"totals":[21.0],"min":[21.0],"max":[21.0]} Как можно получить из всего этого обычное целое число посетителей? Заранее спасибо.

Ну наверное нужно это дело завернуть в переменную, затем использовать json_decode и далее уже что-то вроде return $my_var[' query ']['param']
это сложно? без знания php и js реально?
file_get_contents - это функция, которая выводит либо содержимое файла (если указан путь к файлу), либо ответ запроса (да, через нее можно выполнять запросы к другим сайтам, хотя название на это не намекает).
Вам просто надо полученный ответ присвоить переменной и далее уже с этим работать. Вы можете в админке установить компонент Console и в нем выполнить, например:

<?php $url = 'https://api-metrika.yandex.ru/stat/v1/data'; $params = [ 'ids' => 'НОМЕР_СЧЕТЧИКА', 'oauth_token' => 'ТОКЕН', 'metrics' => 'ym:s:visits' ]; $response = file_get_contents( $url . '?' . http_build_query($params) ); $decoded = json_decode($response); print "<pre>"; print_r($decoded); print "</pre>"; print "<br />query:" + $decoded['query'];


попробую, спасибо! А вывести в шаблоне я смогу саму переменную?
Сможете. Осваивайте сниппеты и чанки с передачей в них параметров.

Добавить комментарий