1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

特定ユーザーのQiita記事一覧を得る(1)

Last updated at Posted at 2021-07-20

#Qiitaは人のためならず

自分は誰のためでもない、未来の自分のためにQiitaの記事を書いています(つまりすぐ忘れる)。
最初のうちは結構いい感じに機能していましたが、記事が増えるにつれ、マイページから自分の記事を探すのがつらくなってきました。
で、自分の記事一覧を表示するスクリプトを用意しました。
ローカル環境でも動作します。
動作デモ

#やっぱ自分のためなり

実際に使ってみて感じたのですが、自分の記事の一覧を得るためというより、他の人の記事一覧を得るのにとても有用でした。
やっぱり良い記事を書いている人は良い記事を量産していることが多いですね。
タイムラインから「いい記事だな」と思った記事を書いたユーザーIDをコピペして、その人が書いた記事一覧を眺めるのにとても役に立っています。

qiita_index.html?uuid=baby-degu
とか。

#ソースコード
myindex.htmlという空のファイルを作成し、下記の内容をコピペしたらダブルクリックで動作します。

追記:最新ソースコードはこちらです

[myindex.html]
<!DOCTYPE html>
<html>
<head><title>user</title>
  <script>
    const USER_ID='ELIXIR'; // 自分のuser_idに変えてください
    var resArr = [];
    function onload(){
      document.title=USER_ID;
      getUser();
    }

    function getUserCB(){
      getData(Math.floor((this.response["items_count"]+99)/100));
    }
    function getUser(){
      resArr = [];
      var req = new XMLHttpRequest();
      req.responseType="json";
      req.addEventListener("load", getUserCB);
      req.open('GET', 'https://qiita.com/api/v2/users/'+USER_ID, true);
      req.send();
    }

    function getDataCB(){
      resArr=resArr.concat(this.response);
      if(this.page>1){
        getData(this.page-1);
      }else{
        dispData(resArr);
      }
    }
    function getData(_page=1){
      var req = new XMLHttpRequest();
      req.responseType="json";
      req.page=_page;
      req.addEventListener("load", getDataCB);
      req.open('GET', 'https://qiita.com/api/v2/users/'+USER_ID+'/items?per_page=100&page='+_page, true);
      req.send();
    }

    function dispData(_resArr){
      var result = document.getElementById('iResult');
      var str="";
      for(i=0;i<_resArr.length;++i){
        str += '<a href="'+_resArr[i]['url']+'" target="_blank">'+ _resArr[i]['title']+'</a><br/>';
      }
      result.innerHTML += str;
    }
  </script>
</head>
<body onload="onload()">
  <div id="iResult">
  </div>
</body>
</html>

#結果
image.png

今回はとりあえず記事一覧を表示しています。
次回以降で、タグでフィルタリングしたりできるようにしたいと思います。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?