Pinterest API を使うために必要な手順を全てまとめました!【申請方法】

Pinterest APIを試す機会があり、Pythonでpinされた画像取得やURLのカウントなど実装しました。途中で色々ハマってしまう部分があったため、まとめてみました。実際に特定のボードから画像をすべて取得する所まで解説するので、誰でも簡単にPinterest APIをマスターすることができます。

Pinterest API で取得できるデータを総まとめ!Pythonで画像取得の方法を紹介!

全体の流れを確認

Pinterest APIは、実際に画像を取得するコードやAPIを使うまでがややこしいです。特に認証フェーズで分かりにくい部分が多々ありました。公式のドキュメントにはプロセスが丁寧に掲載されていますが、詰まった部分含めて順に解説していきます。

先にサンプルコードを見たい方はこちらからどうぞ!

  • 手順1
    Pinterestに登録
    Pinterestにアカウントを作り、ログインしておく必要があります。もう登録済みの方は飛ばしてOKです。
  • 手順2
    AppIDとAppSecretを入手する
    Appを作ります。作り方は非常に簡単です。AppができればAppIDとAppSecretは自動で付与されます。
  • 手順3
    アクセストークン(access token)を入手する
    APIを叩くために必要なアクセストークンを入手します。前のSTEPで入手したAppIDとAppSecretを使います。方法はいくつもあり、複数の方法に触れます。
  • 手順4
    画像を取得する
    アクセストークンを入手したら、実際にAPIを叩いて画像の取得をしてみましょう。

アクセストークン取得までできれば、画像取得以外も簡単にできるようになります。


Pinterest に登録しよう

Pinterestに登録していないと何もできないので、まずは登録しましょう。登録している方は、ログインが出来ていることを確認してください。登録がまだの方は以下からPinterestに飛んで、お好きな方法でアカウントを作ってください。

参考 PinterestへようこそPinterest


AppIDとAppSecretを入手しよう

ここまでで一般的なPinterestのアカウントを作成しましたが、次はAPIを使用するための登録をします。登録は非常に簡単で、以下の手順に沿って進めてください。

1. Appsページにいく

以下のURLからアプリの登録ができます。

参考 Pinterest AppsPinterest

無事にページ遷移できれば問題ありませんが、私自身はここで躓きました。ページが遷移すると、以下の画像のような『ログインしてください』と表示されたページが何度もローディング、読み込みし続けた状態になっていました。

これについては、シークレットモードでPinterestにログインした上で、上記のリンクもシークレットモードで開くと、無事にページが表示されました。

MEMO
シークレットモードの開き方
【Windows / Linux / Chrome OS の場合】
Ctrl + Shift + n キー

【Macの場合】
⌘ + shift + n キー

※シークレットモード自体について知りたい方は以下の記事が役に立ちます。

参考 シークレットモードとは?BOXIL

2. 利用規約に同意してアプリを作成

利用規約の同意チェックボックスがあると思いますが、こちらにチェックしてください。その後CreateをクリックすればOKです。


3. アプリ名と説明を入力する

最後にアプリの名前を決めましょう。これは後ほど変更できませんが、アプリ自体はいくつも作成できます。説明はアプリをどのような目的で作成するか入力してください。

特に何もない方は I want to use API. とか簡易な文でも構いません。

ここでCreateを押して、アプリの完成です!AppIDとAppSecretが自動で生成され、AppSecretはShowをクリックすると表示されます。


アクセストークンを手に入れよう

次に、先ほど入手したAppIDとAppSecretを使って認証を行い、アクセストークンを取得します。認証の際に、自分のウェブサイトにリダイレクトさせるページが必要になります。

今回は、とりあえず簡易的にAPIを叩いてデータ取得を試してみたい方や、サービスに組み込む前に事前テストをしてみたい方向けPostman というサービスを使って進めていきます。

4. Postmanを利用する

Postman とは?

Postmanとは、APIをテストするために使用できるアプリケーションです。認証フローをPostmanで処理してくれるので、比較的楽にアクセストークンを取得するまでをサポートしてくれます。

Postman をインストールする

Postmanのサイトから環境を選んでダウンロードしてください。ダウンロードが完了したらインストールまでして次に進んでください。

参考 Postman ダウンロードPostman

Postman の設定をする

アプリを立ち上げるとこのような画面になっているかと思います。ここで Request をクリックします。

このようなフォームが出てくるので、Request nameを記入します。Request descriptionは空白でも構いません。一番下のsave先のフォルダは適当な名前で大丈夫です。作成してSave to test をクリックします。

続いて、Authorization から TYPE に OAuth 2.0 を選び、 Add authorization data to を Request URLに設定します。


5. Pinterestにリダイレクト先URLを設定する

ここで一旦Pinterest側に戻ります。先ほどのAppページにRedirect URIsという項目がありますが、ここにこちらのURLを設定します。

https://www.getpostman.com/oauth2/call


6. アクセストークンを取得する

いよいよ大詰めです。Postmanに戻り、Get New Access Tokenをクリックし、必要な項目を埋めます。

Callback URL: https://www.getpostman.com/oauth2/callback
Auth URL: https://api.pinterest.com/oauth/
Access Token URL: https://api.pinterest.com/v1/oauth/token
Client ID: AppIDをここに記入
Client Secret: AppSecretをここに記入
Scope: read_public,write_public,read_relationships,write_relationships

OKをクリックすると、トークンが取得できます。


実際にAPIを叩いてみよう

公式ツールで試してみる

それでは取得したAPIを使って様々なエンドポイントにアクセスしてみましょう!

Pinterestが公式に提供している簡易ツールで試す事ができます。

参考 APIツールPinterest

Tokenの部分に、取得したアクセストークンを入れて使用する事ができます。

また、ボードやサブボード、ピンされた画像などさまざまなデータを取得できます。どのようなデータが取得できるかについては公式ツールでぜひご確認ください。


PythonでAPIを叩く

PythonでAPIを叩いてみましょう。今回はトレンチコートの写真が数多くpinされていたボードの画像やURLをすべて取得します。こちらは先ほどの公式ツールでも同様に取得する事ができます。

Python
api = 'https://api.pinterest.com/v1/boards/{boardsName}/pins/?access_token={access_token}'
url = api.format(boardsName = 'bxbmx145/トレンチコート', \
access_token = YOUR ACCESS_TOKEN
)

r = requests.get(url)
data = json.loads(r.text)

その他にPinterestで取得できるエンドポイントについては、公式のドキュメントをご覧ください。非常に分かりやすくまとめられています。

参考 ドキュメントPinterest

まとめ

今後はPinterest APIで取得できるすべてのエンドポイントのサンプルコードもまとめていきたいと思います。Pandasでデータ整形して何かサービスを作ってみるのも良いですね。

もし何かうまく進められない点等あれば、お気軽にお問い合わせよりご連絡ください。なるべく早くメールに目を通したいと思います。