Guzzleを使ってニコニコ動画にログインする【#np2020】

ログインが必要なAPIからデータを取ってくるにあたって、ログイン処理からのデータ取得という流れが必要なんですけど、どうも上手く動かなくてしばらく嵌まる。調べた感じではCookieの設定が上手く行っていなくて、ログインに成功しても次のリクエストに引き継がれていない感じ。




ドキュメントを読むと、

  1. リクエスト時に毎回同じCookieJarインスタンスを渡す
  2. もし共通のCookieJarを使いたい場合には、コンストラクタでcookiesをtrueに設定する

と書いてあって、どちらでもいけるよーみたいなノリだったんですがなぜか動きませんでした。


最終的には、コンストラクタで設定した上でさらにCookieJarを渡してやることで解決。




上が動かなかったコード、下が動いたコード。


本当はコンストラクタで設定して、あとはそのインスタンスを使い回すことでCookieを共有できるとかだと便利なんだけどなぜかそうなってないみたいです。環境の問題かなあ。ちょっとわかりませんが。なんなんだろう。



参考

【PHPチュートリアル】Guzzle6を使ったWebクローラーを自作してみよう その2 – 稼げ!アフィリエイトパワーズ
Guzzleの基本的なリクエストオプション設定まとめ – Qiita