Pinterest API 使ってみた
Pinterest API を使うにはデベロッパープラットフォームで、利用申請を行う必要があります
この際、申請に必要な情報として、利用するサイトやプライバシーポリシーのURLなどが求められるため、これらを準備しないといけません、、(普通なんですかね..)
Pinterest API を使用する際には OAuth認証が必要であり、そのためにはリダイレクトURLを用意する必要があります
また、Pinterest API ではリダイレクトURL は HTTPS である必要がありました
ローカル環境での検証を行いたいと思い、調べたところ mkcert というツールを使用することで、ローカル認証局を作成できることがわかりました
これにより、自己署名証明書を使用してローカルで HTTPS 通信を行うことができるようになります
brew install mkcert
# ローカル認証局の作成
mkcert -install
# 秘密鍵・公開鍵の作成
mkcert -cert-file ./docker/nginx/localhost.pem -key-file ./docker/nginx/localhost-key.pem localhost
今回の開発では Docker を使用します
Web サーバーには Nginx を使うので、docker-compose.yml と default.conf と先ほど作った鍵を使い https 通信できる環境を作ります
docker-compose.yml にて nginx で使用するポート番号を 443 に設定します
services:
nginx:
ports:
- target: 443
docker-compose.yml にて先ほど作った鍵を、コンテナ内の /etc/nginx/conf.d ディレクトリにマウントする設定を入れます
volumes:
- ./docker/nginx/:/etc/nginx/conf.d/:ro
default.conf (nginx の設定ファイル) の ssl_certificate, ssl_certificate_key ディレクティブに先ほど作成した鍵を指定します
server {
# listen 80;
listen 443 ssl;
listen [::]:443 ssl;
server_name localhost;
ssl_certificate /etc/nginx/conf.d/localhost.pem;
ssl_certificate_key /etc/nginx/conf.d/localhost-key.pem;
コンテナを立ち上げると https で接続できるようになります
docker compose up -d
環境はこれで揃ったので、次は中身のアプリケーションなんですが…
フレームワークは普段 PHP を使っているため、Laravel を使います(そこはまだ良い)
Pinterest API は以下のライブラリを経由して使っているのですが、最終更新日が 2年前とかで、最新の api 仕様に追いついていないようです、、(フッ…)
https://github.com/dirkgroenen/pinterest-api-php
そのためライブラリを修正しながら試しているのですが、アプリ経由で Pinterest ログインし code を受け取る所まではいけたのですが、 アクセストークン取るところで、またエラー出てるので調べている感じです(自前でなんとかするか、他の言語のライブラリ調べても良いかもしれない、、)
本当は Pinterest API を batch 経由で使用し、毎日指定した時間に特定の board からランダムに pin を選択して、
スケッチのお題出してくれる簡易 bot 作りたかったんですが OAuth認証の必要があるので、手動実行して pin の情報保存しておいて、
その中から毎日ランダムかなぁ。。
映画のワンシーンとか色合いや構図とかスケッチの勉強に凄くなりそうだから、毎日描く癖つくと良さそうな想像でした
Pinterest API 触れる所全然書けてなくてすみません、次は書けると良いな…!(フッ…)
Tweet