iris

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 触れる所全然書けてなくてすみません、次は書けると良いな…!(フッ…)