タイトル通りです(横着)
「邂逅メイカー」のリストに、「なろうデベロッパー」で公開されている なろう小説API を利用できないかと思いまして、まずはAPIというものに慣れるべく簡単にテストしてみます。
滅多に更新されないので、あまり動的コンテンツに見えないでしょうが…。
(ここにありました、の痕跡)
どうでしょう。
ちゃんと5作、上に表示されてますか?
PHPのコード自体は、なろうデベロッパーで使用例として紹介されていたものを少し改変したくらいなので、探してみれば、こういった利用者は多そうですね。
「検索除外」をかけている作品についてはリストに反映されないようですが、作品IDで絞り込みをかけた場合はどうなんでしょうか。
(疑問に思いつつも試しては みない)
興味のある方が居るかは分からないので、今回のPHPコードについては、ページ分けして置いておきますね。
今回のPHPコード
必要最低限の情報をAPIで取得するようにしてます。
データの取得条件は次の通り。
出力GETパラメータ
- out=json :データ形式はjson
- lim=5 :最大出力数の指定
- gzip=5 :圧縮レベル最大
- (order) :未指定で「新着順」
- of :取得するデータ要素の指定
- t :小説名
- n :Nコード
- s :小説のあらすじ
条件抽出GETパラメータ
- userid :ユーザIDで条件抽出
こんな感じに必要最小限にしてあるので、利用制限のかかる心配は無いはず。
完全に「ダレ得?」ですが、参考程度にコード自体も貼って終わります。
<?php
//これをAPIの基本URLとする(JASON形式、5件まで、圧縮レベル5)
$url='https://api.syosetu.com/novelapi/api/?out=json&lim=5&gzip=5';
//パラメータを足す
$url.='&of=t-n-s&userid=706865';
//APIを取得
$file = file_get_contents($url);
//解凍する
$file=gzdecode($file);
//JSONデコード
$listarray=json_decode($file,true);
?>
<h3>▼抽出した小説の一覧</h3>
<dl>
<?php
//展開する
foreach($listarray as $key=>$value){
//要素0はcontinueで飛ばす
if($key==0){continue;}
//小説のURLを代入
$novelurl='https://ncode.syosetu.com/' .strtolower($value['ncode']). '/';
//小説のタイトルリンク
echo '<dt><a href="' .$novelurl. '">' .$value['title']. '</a></dt>';
//あらすじの表示
echo '<dd>' .nl2br($value['story']. '</dd>');
}
?>
</dl>
