なろう小説APIの利用テストを兼ねて、拙作を新着表示してみる。

なろう小説APIの利用テストを兼ねて、拙作を新着表示してみる。

2018-07-17

タイトル通りです(横着)

邂逅メイカー」のリストに、「なろうデベロッパー」で公開されている なろう小説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>