88日目:GitHubでOauth Appsを作成してGitHub APIからRepoを取得する

GitHubのDeveloper Settingsより、Oauth AppsでNew Auth Appを作成してClient IDとClient Secretを取得しました。これで、PostmanにGitHubのユーザーネームを入力したURLを入力すれば、GitHub APIよりGitHubユーザー(今回の場合は私自身)のRepoの情報が取得できるようになりました。

今まで自分が作成したレポジトリの情報などがPostmanで全てチェックできるのはAPIのおかげです。APIについてもさらに知識を深めたくなりました。

本日のコード(api/profile.jsにGitHubのAPIを取得するrouteを作成)

// @route    GET api/profile/github/:username
// @desc     Get user repos from Github
// @access   Public
router.get("/github/:username", (req, res) => {
  try {
    const options = {
      uri: `https://api.github.com/users/${
        req.params.username
      }/repos?per_page=5&sort=created:asc&client_id=${config.get(
        "githubClientId"
      )}&client_secret=${config.get("githubSecret")}`,
      method: "GET",
      headers: { "user-agent": "node.js" }
    };

    request(options, (error, response, body) => {
      if (error) console.error(error);

      if (response.statusCode !== 200) {
        return res.status(404).json({ msg: "No Github profile found" });
      }

      res.json(JSON.parse(body));
    });
  } catch (err) {
    console.error(err.message);
    res.status(500).send("Server Error");
  }
});

これだけでは動かないので、config/default.jsonに以下の情報も追加しました。

{
  "mongoURI": "",
  "jwtSecret": "secret",
  "githubClientId": "",
  "githubSecret": ""
}

空白になっているところにGitHubのOauthで発行されたCliend IDとClient Secretを入力すれば完成。

Postmanのcollectionの一部の不具合の原因判明

先日から何度か書いていたPostmanでのデータの入力・変更・取得が一部おかしいという件についてですが、原因が判明しました。おそらく、profileFieldのIが一つ大文字になっていたからです。

というわけで、今回もtypoでした。

Postmanのcollectionについては、全て設定見直し予定なのですが、今日は3つ見直し完了しました。全て正常にしてから次のセクションでPOST API Routesの作成に入りたいと思います。

現在使用している教材と現在の状況:学習時間3.0時間

Udemy:MERN Stack Front To Back: Full Stack React, Redux & Node.js by Brad Traversy

Sec4: Profile API Routes

-Lec23 Get Github Repos For Profile

進捗状況:32%

学習時間3.0時間

~本日は休みにしている教材~

Udemy:The Complete Web Developer: Zero to Mastery by Andrei Neagoie

進捗状況: 92%

-参考にしたページ-

「express実践入門」小川充 (GitHub)

 

関連キーワード
  • 131日目~134日目:Udemyで一番人気のGit (&GitHub) コースを修了!学習した内容・学習にかかった時間とおすすめ度をご紹介: Completed Git course by Udemy "Git Complete: The definitive, step-by-step guide to Git" by Jason Taylor: Highly recommended to both beginner & intermediate leaner
  • 121日目~130日目:Udemyで新しいReactコース学習とGit & GitHubのコースを受講し始める #100dayofcode Round 2
  • 120日目:プログラミング学習100日チャレンジの完了とこれからの学習&ブログ記事:100days of code completed & from now on
  • 119日目:完成したWebアプリケーションの公開(Devconnector deployed on Heroku)
  • 118日目:Udemy講座の感想口コミ&自分に合った講座の選び方ポイント:Mern Stack Front to Back: Full Stack React, Redux & Node.js by Brad Traversy
  • 117日目:完成!Herokuへのデプロイ成功:Heroku CLIのインストールからWebアプリデプロイまで。Herokuの使い方と、package.jsonとgitコマンドではまったところと解決方法
おすすめの記事