#きっかけ
プログラミングを学ぶことも楽しいが、ゲームもやはり楽しい。(特にlol)
最近プラチナに昇格して、ほくほくである。
プログラミングもようやく色々とできるようになったので、いっちょここらで自作のwebサイトを作ろうかと意気込んでいた。
###そうだlolのデータを取得して分析サイト(個人趣味)を作ろう!
思い立ったが吉日。早速設計することにした。(頭の中で)
lolというゲームにおいて、忘れてはならないのが、OP.GGというサイトである。
このサイトで自分のゲームの中の名前を入れるやいなやものすごい量の戦績データなどを振り返ることのできる
神サイトである。
また、チャンピオンの勝率や、そのチャンピオンの使用武器ごとの勝率などとにかくすごい。
僕自身かなりお世話になったサイトである。僕をあおってきたやつの名前を検索してランクをあざ笑ったりした
なので、最初はそのサイトをスクレイピングして~(いいのかわからんが)と考えていたのだが、検索したところ。。。
###Riotから既にAPIが公開されているではないかあああああ!!!!
まさにS8途中にADCがADCでないメタが流行ったばりに衝撃を受けた。
lolネタがわかるひとならきっと伝わっていると思う。
#参考
Riot Games APIでLeague of Legendsの試合データを取得しよう
RiotAPIを使ってLP変動を調べてみる
[公式サイト](Riot Games API)
幸運にも偉大なる先人たちがやってくださっていた。ありがとうございます。ちょっと記事が古いけども
#実践
今回の流れとしては、公式から発行されているAPIキーを使って自身に紐づくサモナーIDを取得して画面に表示しちゃおうというもの
まずはrouteから
###route
シンプルなルーティング。indexControllerのgetIDapiメソッドを使う。
変数api_keyには、公式から発行されるAPIキーを入力する。
変数summoner_nameには、自分のサモナーネームを入れる。
変数regionには、自分のやっているサーバーを入れる。日本ならjp、NAならna
上記の変数は別に作成せずとも変数urlの中にべた書きで問題ない。変数urlさえ正しく作れていればOK
その後は、curlを使ってサーバーへリクエストを送り、サモナーIDを手に入れるという形。
この辺は参考サイト2番目のほうで詳しくやっていただいている。
セッションの項目は僕が勝手に作ってるだけなので気にしないでください。
取得し終えたら、api.blade.phpへ変数resultを返す。
この変数resultは配列になっているので注意。
自分好みでわんわんおやらふざけているが最悪、11行目がかけていれば大丈夫。
ボタンの部分は今後自分が作る予定のために書いているので気にしないでください。
ソースがふざけすぎててわらった
なんかこんな感じでidやらサモナーレベルやら出たら合格!
nameには自分のサモナーネームが入っているよ。
(一応怖いので一部マスクしました。)
#注意点
ハマってしまった箇所が一点だけ。。。
参考サイトをみていてずっとうまくいかなかったのですが、Controllerのurlには注意してください。
この部分が参考サイトだと古いので必ず公式サイトを参照してください。(当時クローズドベータだったからだと予想)
#あとがき
僕自身APIを利用すること自体が初めてなので、HTTPリクエストとかも完全に理解してないと思います。。。(勉強します)
なので、文章自体が少しおかしかったり、なんならviewはたぶんインデントとかひどいと思うので
もしそういうことがあればコメントいただけたらと思います。。。
champion.gg?そんなサイトはもう知らんなぁ!