@sequelone

Как распарсить API Github на PHP?

Всем привет. Пытаюсь вывести на сайт список релизов репозитория через API Github.

$url = 'https://api.github.com/repos/modxcms/revolution/tags';
$json = file_get_contents($url);
$releases = json_decode($json);

echo '<pre>';
var_dump($releases);
echo '</pre>';


выводит NULL

если пройти по ссылке https://api.github.com/repos/modxcms/revolution/tags видно что есть JSON. Нужно получить массив с данными. Что я делаю не так?

UPD. 09.04.2018

Рабочий вариант:

<?php
$url = 'https://api.github.com/repos/modxcms/revolution/tags';
$cURL = curl_init();

curl_setopt($cURL, CURLOPT_URL, $url);
curl_setopt($cURL, CURLOPT_HTTPGET, true);
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
curl_setopt($cURL, CURLOPT_FOLLOWLOCATION, true);

curl_setopt($cURL, CURLOPT_HTTPHEADER, array(
    'User-Agent: https://api.github.com/meta'
));

$result = curl_exec($cURL);

curl_close($cURL);

$json = json_decode($result, true);
//print_r($json);
  • Вопрос задан
  • 412 просмотров
Решения вопроса 1
@Artray
Отсутствует заголовок 'User-Agent'

All API requests MUST include a valid User-Agent header. Requests with no User-Agent header will be rejected.


Можно сделать так:

<?
$context = stream_context_create([
  'http' => [
     'header' => 'User-Agent: Awesome-Octocat-App'
   ]
]);

$url = 'https://api.github.com/repos/modxcms/revolution/tags';
$json = file_get_contents($url, false, $context);

$releases = json_decode($json, true);

echo '<pre>';
var_dump($releases);
echo '</pre>';
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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