こんにちは! バックエンドエンジニアのまさくにです。
先日、LIG 主催のイベント「 原稿料を一桁上げるためのライター処世術 」に参加して、「 侍魂 」という単語を久々に聞きました。かのサイトは自分の青春でもあるのですが、だんだんとあの伝説も人々の記憶から薄れていっているかと思うと、神妙な気持ちになりました。勉強会は非常にエキサイティングでしたね。
さて、コードも書いていきましょう。「いろんなサービスの API 触っちゃった」がテーマの本シリーズ。
今回は Pinterest の API を触っていきます。
いいっスよね、Pinterest。これとか本当に癒される。
今回はこの Pinterest へ速攻画像を登録します。これができれば夢が広がるなぁ。難しいことやりません。気楽に見てってください。
目次
とにかく実行してみる
APIへ接続した環境
- macOS Sierra: 10.12.3
- 今回の言語は ruby: gemとbundler を使用
- iTerm2 で実行
$ ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin15]
$ gem -v
2.5.2
$ bundle -v
Bundler version 1.13.6
用意した数少ないコード
今回も前回と同様 2 つのコードを用意しました。ソースコードはここにもあります。
▼Gemfile
source 'https://rubygems.org'
gem 'pinterest-api'
▼touch_pinterest.rb
require 'pinterest-api'
client = Pinterest::Client.new(ENV['PINTEREST_ACCESS_TOKEN'])
client.create_pin({
board: 'your_account/your_board',
note: 'LIG野尻湖オフィスの目の前',
link: 'https://liginc.co.jp/',
image_url: 'https://liginc.co.jp/wp-content/uploads/2017/03/149094144961017200_22.jpg'
})
ENV['PINTEREST_ACCESS_TOKEN']
の部分は Pinterest のアクセストークン(後述)になりますが、設定済みの環境変数から取得しています。また接続する Pinterest のアカウントにボードを作成しておいてください。
実行してみる
下記コマンドで実行します。
$ bundle install --path vendor # ライブラリをインストールします
$ bundle exec ruby touch_pinterest.rb # #touch_pinterest.rbを実行します
exec で何かが表示されたら、何かがエラーなんでしょうね……。何なんでしょうね……。祈りを捧げるか、設定を再度ご確認ください。
実行結果
成功! 長野はきれいだぞー!
実行するための周辺情報
今回もわずか数行のコードを書くことで、Pinterest の API を利用して画像を登録することができました。本稿でも周辺情報を書いて理解を少し深めたいと思います。「もういいや」って方はLIG 長野支社の Instagram でも見てってください。
Pinterestの認証
Pinterest にもアプリケーションという概念概念があり、OAuth 2.0 で認証を行うことになります。Twitter と同じく、アプリケーションがユーザーになり変わってボードやピンの操作を行えるようになるということですね。そのためにはユーザーのアクセストークンが必要です。
アクセストークンの関係は以下のようになっています。
アプリケーションがユーザーのアクセストークンを取得するためには、App ID と App secret を使ってアプリケーションの身元証明をしつつ、ユーザーにによってアプリケーションへの許可を与えてもらう必要があります。アカウントの作成〜アクセストークンの取得は下記のような手順になります。
- Pinterestのアカウントを取得する
- アプリケーションを作成する
- アクセストークンを取得する
Pinterestのアカウントを取得する
もしまだアカウントを持っていないという方がいらっしゃったら、どんなお気持ちでここまでご精読いただいているのでしょうか。ありがとうございます。Pinterest のアカウントを取得しましょう。お気に入りの画像や動画を「ボード」に「ピン」してアルバムのように使える楽しいサービスです。他の人とボードも共有できますよ!
アプリケーションを作成する
Pinterest にログイン済みのアカウントで、このページにアクセスするとアプリケーションを作成することができます。
規約をご確認後、「 Create App 」からアプリケーションの名称と説明を記入して、「 Create 」をクリックしてください。
アプリケーションができあがって、すでにここで App ID と App secret が取得できます。実際にユーザーへアプリケーションを公開する場合は、この 2 つのキーを使用しますので、コピペしておいてください。
ちなみにこのテスト用アプリケーションは削除済みです。
アクセストークンを取得する
正念場ですが、ざっくり省きます。
本来であれば アプリケーションは普通他の人に使ってもらうため、ユーザー自身のアクセストークンが必要となります。が、今回は自分のアクセストークンを取得できればテストとしては事足りるので、この「 Token generator 」というページから自分のアクセストークンは取得できてしまうのです。リダイレクトとかしてユーザーのアクセストークンを取得する方法については、また機会があれば書かせてくださいね。
さらに言えば、便宜上作成していただきましたが、自分のボードに自分で画像をアップする等であれば本当はアプリケーションも不要だったのです。申し訳ない。この辺が Twitter とちょっと違います。
Pinterest にログイン済みの状態で「 Generate token 」をクリックすると、自分のアクセストークンに限りカンタンに手に入ります。これを使って冒頭のスクリプトをお試しください。これまたカンタンにピンができるかと思います。
まとめ
Pinterest は 個人的には疲れたときに見返して、英気を養うサービスになっています。この API を使えば画像が登録できるようになるので、自分は疲弊と回復を繰り返す永久機関となりましょう……。ありがとう、Pinterest ……。
Pinterest の API は数もそんなに多くないのですが、本稿でお伝えできたのはその一部です。リミット等にも注意していただき、どうぞ良い Pinterest ライフを!
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。