Qiitaに投稿された自分(または他人)の記事の実際のストック数を知る方法 (「いいね」の数じゃなくて・・・「ストック」の数と誰が「ストック」しているかまでわかります！)

自分の記事の「<i class="fa fa-folder" aria-hidden="true"></i>ストック数」知りたいですよね？
プログラムを組まなくても、そこそこ簡単に「<i class="fa fa-folder" aria-hidden="true"></i>ストック数」を確認する方法がありますのでお教えしましょう！また、プログラムからQiita APIを起動するやり方も紹介します。

----

下記のリンクは[『Cygwinの環境を複数作ったり、パッケージのインストールを自動化したりする(たった一つのスクリプトファイルだけで…魔法のように…Linuxライク環境が構築できる！) - Qiita』](http://qiita.com/javacommons/items/1a182f187fd2a8df29c2)のトップに飾っているものですが、クリックすると Qiita API v2 が実行されて上記記事を<i class="fa fa-folder" aria-hidden="true"></i>ストックしている人の一覧が確認できます。

<div align="center">
「<i class="fa fa-folder" aria-hidden="true"></i>ストック」してくれている方(42名ほど)<br />
  <a target="_blank" href="https://qiita.com/api/v2/items/1a182f187fd2a8df29c2/stockers?per_page=100&page=1">
    <b>https://qiita.com/api/v2/items/1a182f187fd2a8df29c2/stockers?per_page=100&page=1</b>
   </a>
</div>

- JSON形式で表示されます。Firefox で見ると整形されて表示されるので読めます。Chromeでは読めません(いぁ、読めるけど・・・)。
- 上記URL内の記事のUUIDの部分(<kbd>1a182f187fd2a8df29c2</kbd>)をあなたの(または確認したい他人の)記事のUUIDに入れ替えて実行(ブラウザで開く)してください。(ちなみに上記記事のURLは `http://qiita.com/javacommons/items/`<kbd>1a182f187fd2a8df29c2</kbd> です)
- 100人を超えていたら <kbd>page=1</kbd> の部分を <kbd>page=2</kbd> <kbd>page=3</kbd> ・・・のようにカウントアップしてみてください。

Choromeで開いた場合は <kbd>"id":</kbd> で検索すると人数とQiita IDを確認しやすくなります。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/140610/cc4e7b64-687c-dd24-1c11-2d6381361a6b.png)

# プログラムからAPIを起動する

Windows PCで以下のスクリプトをテキストとして保存して、エクスプローラーからダブルクリックすることで Qiita API をJavaScriptプログラムから実行できます。HTMLを生成するバージョンを現在作成中です。

```html:test-api.wsf
<package>

<job>
<script language="JavaScript">

  if (!String.prototype.format) {
    String.prototype.format = function() {
      var args = arguments;
      return this.replace(/{(\d+)}/g, function(match, number) { 
        return typeof args[number] != 'undefined'
          ? args[number]
          : match
        ;
      });
    };
  }

  var isCscript = /\\cscript\.exe$/i.exec(WScript.FullName);
  if(!isCscript) {
    var shell = new ActiveXObject("WScript.Shell");
    var cmd = "cmd /c cscript.exe \"{0}\"".format(WScript.ScriptFullName);
    shell.Run(cmd, 1, true);
    WScript.Quit();
  }

  var json_html = WScript.CreateObject('htmlfile'), JSON;
  json_html.write('<meta http-equiv="x-ua-compatible" content="IE=9" />');
  json_html.close(JSON = json_html.parentWindow.JSON);

  var vec = loadVectorFromURL("https://qiita.com/api/v2/items/1a182f187fd2a8df29c2/stockers?per_page=100&page=1");

  echo("{0}人がストックしています。".format(vec.length));

  for (var i=0; i<vec.length; i++) {
    echo("{0}人目: @{1}={2}".format(i + 1, vec[i].id, vec[i].name));
  }

  var msg = "終了します。";
  echo(msg);
  msgbox(msg);
  WScript.Quit();

  function echo(msg) {
    WScript.Echo(msg);
  }

  function msgbox(msg) {
    var shell = new ActiveXObject("WScript.Shell");
    shell.Popup(msg, 0, "Windows Script Host", 0);
  }

  function getURLContent(url) {
    var StreamTypeEnum  = { adTypeBinary: 1, adTypeText: 2 };
    var SaveOptionsEnum = { adSaveCreateNotExist: 1, adSaveCreateOverWrite: 2 };
    var http = WScript.CreateObject("MSXML2.XMLHTTP");
    var strm = WScript.CreateObject("ADODB.Stream");
    http.Open("GET", url, false);
    http.Send();
    strm.Type = StreamTypeEnum.adTypeBinary;
    strm.Open();
    strm.Write(http.responseBody);
    strm.Position = 0
    strm.Type = StreamTypeEnum.adTypeText;
    strm.Charset = "utf-8";
    var result = strm.ReadText();
    strm.Close();
    return result;
  }

  function loadJsonObjectFromURL(url) {
    var json = getURLContent(url);
    return JSON.parse(json);
  }

  function loadVectorFromURL(url) {
    var vec =loadJsonObjectFromURL(url);
    var result = [];
    for (var i=0; i<vec.length; i++) {
      result.push(vec[i]);
    }
    return result;
  }

</script>
</job>

</package>

```

![image.png](https://qiita-image-store.s3.amazonaws.com/0/140610/deac1c59-5f98-0c8a-88e0-8571fbe8bd09.png)

----

ところで、自分(または他人)の記事の中で「<i class="fa fa-folder" aria-hidden="true"></i>ストック数」が多い記事はどれでしょう？
知りたいですよね？
これも、そこそこ簡単に確認する方法があります。以下のURLに飛んだ後で「user:javacommons」の「javacommons」を自分または他人のQiita IDに書き換えて ![image.png](https://qiita-image-store.s3.amazonaws.com/0/140610/b16e8846-5f4f-a98b-f59a-deca801047c7.png) を押してください。「<i class="fa fa-folder" aria-hidden="true"></i>ストック数」の多い順に表示されますので、上述した方法で上の方から順番に実際の「<i class="fa fa-folder" aria-hidden="true"></i>ストック数」を確認してみると良いでしょう。

<div align="center">
@javacommons の投稿(「<i class="fa fa-folder" aria-hidden="true"></i>ストック」が多い順)<br />
  <a target="_blank" href="http://qiita.com/search?q=user%3Ajavacommons&sort=stock">
    <b>http://qiita.com/search?q=user%3Ajavacommons&sort=stock</b>
   </a>
</div>

<br />

<div align="center">
  <a target="_blank" href="http://qiita.com/search?q=user%3Ajavacommons&sort=stock">
    <img src="https://qiita-image-store.s3.amazonaws.com/0/140610/2160c95a-9216-dd9a-1622-57b4e16c8822.png" />
  </a>
</div>

----