LoginSignup
19
15

More than 5 years have passed since last update.

GitHub API の罠にハマった

Posted at

GitHub API の罠にハマって10分位悩んだ

結論

GitHub API を使うときにはHTTPヘッダーの User-Agent を設定しよう!

経緯

403 Forbidden が返ってくる

GitHub の API を node を使って叩くサンプルを作ろうとして
ユーザ情報を取得する GET /user を叩くだけの簡単なプログラムを書いたら 403 エラーが返ってくる現象が起きた。

トークンのせいかな?と思うもトークンが違えば 401 Unauthorized が帰ってくるはずなので何かがおかしい

curl コマンドを使うとうまく行く

しかも curl コマンドを使うと同じトークンでも問題なく実行できるという謎っぷり

User-Agent が設定されていないと受け付けない

手元で試すだけではどうしようもなくなったので大人しくドキュメントを読むことに。
403 Forbidden をキーワードに検索をかけてみると User Agent Required という項目を発見。

GitHub の API は User-Agent が設定されていないとそもそもリクエストを受け付けないらしい。

ドキュメントはここ

curl は下のように実は User-Agent も付与して送ってたから実行できてた事も分かった。

terminal
takayuki@takayukioda:~$ curl -v -X HEAD github.com
* Rebuilt URL to: github.com/
*   Trying 192.30.252.129...
* Connected to github.com (192.30.252.129) port 80 (#0)
> HEAD / HTTP/1.1
> Host: github.com
> User-Agent: curl/7.43.0
> Accept: */*

「User-Agent があるからセキュリティが向上する」とは言えないけど、こういうところからきちんと情報を集めるんだな〜と感心した。

今後APIを公開する事があったらこういう部分もしっかりパクッ考えていきたいなと思った次第です。

19
15
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
19
15