APIを使ってスクリーンショットを取得2019年11月2日Googleではサイトの表示速度をサイト評価の基準の一つに活用すると公表しています。Consoleにも速度チェック機能が備わり始めたりしているので、サイトの表示速度は重要な指標になりつつあるということのようです。APIというAPIも新たに提供がスタートされていました。このAPIにURLを投げつけると、応答速度のスコアリングや表示時間といったデータを受け取ることができますが、そんなレスポンスデータの中に、base64でエンコードしたサイトのスクリーンショット画像もセットがされているようです。登録サイトURLを大量にためている「ディレクトリ型検索エンジンdtn」にもってこいのAPIのようですので、早速ながらこのAPIを使って、登録サイトのスクリーンショットデータを取得といったことをやってみました。取得イメージはこちらの「アクセスランキングページ」などでご確認ください。APIを使い、URLのスクリーンショットを取得する方法をご紹介したいと思います。APIを使う方法まで、サンプルコードを交えて説明したいと思います。APIの一つを使ってサイトのスクリーンショット取得については、こちらのブログ記事でも詳しく説明がされています。APIを使ってスクショを取っているようです。dtnディレクトリでも登録サイトさんのスクショを撮って宣伝してあげたいとは思ってきましたが、スクショ機能をサーバに組み込むのは大変ですし、安定して、簡単に利用できそうなAPIなんてありませんでしたので、なかなかできずにおりました。今のdtnディレクトリのカテゴリ。昔変わらずシンプルな感じです。いえ、GoogleのAPIであればAPIの安定性もレスポンスも全く問題なさそうです。APIは、サイト表示速度関連の情報を提供する目的として作られたものですが、速度の分析をする際に、取得したサイトのデータをスクリーンショットとして保存し、それをbase64でエンコードまでして提供してくれるオマケサービスまで提供してくれています。Google様という感じです。先ほどのブログ記事は2017年3月のVersion2のものだったので、今も同じようにスクリーンショットをレスポンスで渡してくれるかどうか不安でした。APIのドキュメント(今はVersion5)を見てみましたが、プロパティ:lighthouseResult.runtimeError.codeの説明として、NO_SCREENSHOTSなるパラメータが存在していたので、スクリーンショット関連の何かはまだありそうな感じです。APIレスポンスにそれらしいものがということで、早速API利用に向けた設定を進めていきます。Platform(旧デベロッパーコンソール)のアカウントをお持ちとは思いますので、ログインしてダッシュボードに進んでください。未登録の方は、Googleアカウントを先に取得してお進みください。APIを探して、ご利用中のプロジェクトで有効化してAPIキーを取得すれば利用することができます。APIを有効化すればOKです。APIをクリックすると、「クレデンシャルを作りなさい」との警告がでています。CREDENTIALSボタンからOAuthの認証情報作成画面に進みますが、今回はAPIキー取得だけできればOKですので、サービスアカウントの作成で済ませておきます。サービスアカウントの作成あとは適当な名前を付けて、次へ次へと進むと、キーの作成ボタンがでてくるのでAPIキーを作成します。APIを利用した際はP12を使ってプログラムを書いていたので、このあたりを流用するため、今回もP12で保管しておきます。大量利用でなければAPIキーも不要APIのチュートリアルを読んでみると、↓のような記載があったりして、お試し程度であればAPIキーも登録せずに利用できるようですが、先々PHPでグルグル回すことも考えてAPIキーは用意しておくことにしました。