綺麗に死ぬITエンジニア

macOS向けHTTPクライアント「Paw」でTwitter APIを叩く

2016-11-07

前回の記事で紹介した、macOS向けHTTPクライアントアプリケーション「Paw」で、Twitter APIの動作確認をしてみたいと思います。

本記事のゴール

本記事では、Pawを用いて、Twitter API経由で「Pawなう -https://s8a.jp/paw-twitter-api」とツイートすることをゴールとします。

また、できる限りPawの機能を紹介するため、Pawで使える機能をどんどん使っていきます。

それでは、ささっとAPIで呟いちゃいましょう!

Twitter API Keyを取得する

Twitter APIを叩くには、API Keyが必要です。API Keyを取得しましょう。

取得済みの方は、この手順は飛ばしてください。

  1. Twitter Application Managementにアクセスし、Sign inする
  2. "Create New App"から、新しいアプリケーションを作成する(既存のものを利用する場合は、そのアプリケーションを選択する)
  3. "Keys and Access Tokens"タブに切り替え、アプリの資格情報(Consumer Key及びConsumer Secret)と、ユーザーの資格情報(Access Token及びAccess Token Secret)の、計4つの文字列を控えます

paw-twitter01

途中で詰まった方は、Google等で「Twitter API Key 取得」などと検索すると詳しい情報が得られますので、参考にしてください。仕様変更などによりうまくいかない場合がままあります。

Pawにて、OAuth認証情報を設定する

一つ一つのリクエストに対して認証情報を入力するのは非効率なので、Pawの環境変数の機能を用いて設定していきます。

Pawの新規ドキュメント(Create a New Local Project)を開き、左上の"Environments"をクリックし、続けて"Manage"をクリックします。

paw-twitter02

初めに用意されていた"Default Group"の名称を「Auth」に変更し、そのまま"Variable"の"name"に「Authorization」と入力します(それ以外の名称でも可能ですが、ここではこの名称を使用することとします)。

paw-twitter03

そして、"value"の部分を右クリックし、"Authorization" → "OAuth 1.0a Authorization Header"をクリックします。

paw-twitter04

出てきた入力画面に、下記の通り入力していきます。

  • Consumer Key: Twitter APIのConsumer Key
  • Consumer Secret: Twitter APIのConsumer Secret
  • Token: Twitter APIのAccess Token
  • Token Secret: Twitter APIのAccess Token Secret
  • Timestamp: 変更しない(Timestamp Epoch Time)
  • Nonce: 変更しない(Nonce)
  • Signature Method: HMAC-SHA1
  • Callback URL: 空欄
  • Additional Params: 空欄
  • Body Hash: チェックしない

paw-twitter05

その他の環境変数の設定

APIサーバーの情報を環境変数に設定して、そこから情報を呼び出すようにしておきます。

環境変数設定画面にて、"Group"に「Server」を追加し、"Variable"に「Protocol」「Host」「Port」を追加、それぞれの"value"へ「https」「api.twitter.com」「443」と入力します。

paw-twitter06

なお、ここで"Production"以外の列を追加し、値を入力すると、実行時に対象サーバーを即時に切り替えることができます。便利ですね。

いざ、Twitter APIを叩く!

認証情報やサーバー情報を入力し終えたので、あとはAPIを叩くのみです。

Twitter APIの仕様はこちらに記載されています。

まずは手始めに、自分のツイート情報を取得してみましょう。

自分のツイート情報を取得するAPIは、GET statuses/user_timelineです。リソースURLはhttps://api.twitter.com/1.1/statuses/user_timeline.jsonです。必須パラメーターはありません。

まず、Pawの画面左側の、初めから用意されている"Request"の項目の名称を「Twitter User Timeline」のようなわかりやすい名称に変更しておきましょう。そして、メソッドは「GET」で、URLにサーバー情報を入力します。

paw-twitter07

サーバー情報は環境変数に設定済みなので、URL欄に「{Protocol」と入力すると、入力欄の下部に"Server Protocol"の項目が表示されるので、それをダブルクリックします。

paw-twitter08

すると、環境変数「Protocol」がセットされます。

paw-twitter09

これと同じ要領で、環境変数を使用しながらURLを入力していきます。

paw-twitter10

URLを上図のように入力し終えたら、認証情報をセットします。

"Headers"タブの"Header Name"に「Authorization」を追加し、"Header Value"に環境変数「Authorization」を追加します。

これでAPIを叩く準備ができました。URL欄の右側の更新ボタンをクリックしてみましょう。ここまでの設定が正しければ、自身のタイムライン情報がJSON形式で取得できるはずです。

paw-twitter11

正しく情報が取得できましたか? 取得できない場合は、認証情報や設定値が誤っている可能性があります。今一度確認してみましょう。

では次、ツイートしてみましょう。

ツイートするためのAPIは、POST statuses/updateです。リソースURLはhttps://api.twitter.com/1.1/statuses/update.jsonです。必須パラメーターは"status"です。

まず、前回の"Twitter User Timeline"のリクエストを右クリック、"Duplicate"をクリックし、コピーを作成しましょう。そして、名称を「Twitter Update」などの分かりやすい名称に変更します。

メソッドを「POST」に変更し、URLも修正しましょう。

"Body"タブを選択し、"Form URL-Encoded"の"Parameter Key"に「status」、"Value"に「Pawなう -https://s8a.jp/paw-twitter-api」と入力します。

これで、準備完了! URL欄の右側の更新ボタンをクリック!!

paw-twitter12

Pawなう -https://s8a.jp/paw-twitter-api — もりやませーた (@n0F) 2016年11月7日

まとめ

Pawを使ってTwitter APIを叩いてみました。

Pawを用いることで、OAuthの認証周りの確認が、通常に比べて容易に可能であることがわかると思います。

Twitterのような外部サービスのAPIを叩くだけだと、今回用いた環境変数の機能の恩恵も受けにくいですが、自社サービス等のデバッグの際には、環境を切り替える必要が出てきますから、非常に便利です。布教活動の意を込めて、ここでも使っておきました。

皆さんも、Pawを用いてAPIテストを爆速化してみてはいかがでしょうか。

Paw - The most advanced API tool for Mac