しずかなインターネットのAPIを利用する

しずかなインターネットのAPIを利用して記事一覧を引っ張ってくるというのをPHPでやったので、そのメモ。
ドキュメント関連は以下。


APIキーは事前に取得しておく。

$api = 'API KEY';
$header = [
'Content-Type: application/json',
'Authorization: Bearer ' .$api
];
$param = [ //条件を絞り込む場合はパラメータを指定
'sort' => 'created',
'direction' => 'desc',
'visibility' => 'ANYONE'
];
$ch = curl_init();
$options = [
CURLOPT_URL => 'https://sizu.me/api/v1/posts?' .http_build_query($param),
//CURLOPT_URL => 'https://sizu.me/api/v1/posts', ←パラメータを指定しない場合はこっち
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => $header
];
curl_setopt_array($ch, $options);
$res = json_decode(curl_exec($ch), true);
curl_close($ch);
var_dump($res);

一応出力のループも。

<?php
foreach($res['posts'] as $article):
//var_dump($value);
//date
$t = $article['createdAt'];
$date = new DateTime($t);
$date->setTimeZone(new DateTimeZone('Asia/Tokyo'));
//tags
$tags = $article['tags'];
?>
<article>
<h2><a href="https://sizu.me/[account_name]/posts/<?php echo $article['slug']; ?>"><?php echo $article['title']; ?></a></h2>
<div>
<p><time datetime="<?php echo $date->format('Y-m-d'); ?>"><?php echo $date->format('Y-m-d'); ?></time></p>
<?php if($tags): ?>
<ul>
<?php
foreach($tags as $tag) {
echo '<li>#' .$tag. '</li>';
}
?>
</ul>
<?php endif; ?>
</div>
</article>
<?php
endforeach;
?>

しずかなインターネットに限らず、ほかのAPIでもだいたい似たような感じのはず。