Aikの技術日記

技術的な進捗とか成果とかを細々と投稿するブログです。時々雑記も。

TwitterAPI使ってみた その1(環境構築編)

その2(失敗プログラミング編)はこちら
その3(簡単なプログラム作ってみた編)はこちら

※筆者がTwitter APIに触れたのは2018/12/06〜2018/12/08くらいです。
TwitterAPIは仕様変更がたびたび起こっているみたく…。
今のTwitterAPIの仕様とは色々と異なる場面もあるかもしれません、ご了承ください。

はじめに

Twitterでよく、絵を沢山投稿しているアカウントがありますよね。
私もよくTwitterに絵を投稿しては、自分の絵を見返したりしてるのですが…。

あんまりに過去のものすぎると辿るのが面倒になったり、読み込みがもっさりしたり…よくあると思います。
そうなっちゃうと、「自分の絵の成長を見るために過去絵を…!」とか、「前描いたあの絵を見せたい」って時にちょっと困っちゃうんですよね。
(まぁそもそもTwitterはそういうプラットフォームじゃないっていうのあると思いますが)

ならもういっそ、過去絵をローカルに保存しちゃおうかなって思ったりもしますが…。
2013年から始めた私のアカウントの全画像を、逐一保存していくのは流石に骨が折れそうで…。

そこでふと、Twitterが提供してくれているAPIの事を思い出しました。
確かTwitterAPIの機能に「ツイートとかの情報をJSON形式で出力してくれる」ものがあったはず。

これを使って全ツイートの画像URLとかを取得し、一気にDLできれば…。
少なくとも手動でぽちぽちDLするよかは、よっぽど楽に画像収集出来るはず!

筆者は何かしらのAPIを意識して使うのは初めて(なはず)なので…。
手探り状態になりますが、色々頑張っていこうと思います。

と言う事で「TwitterAPIを使って今まで投稿してきたTwitterの画像を全てDLする」、始めていきますよ!

Twitter API開発準備

まずは開発環境の準備から。
TwitterAPIを使うには、APIキー?が必要らしく…。
Twitter Developersから、登録が必要とのこと。

アカウントはTwitterのものを流用できるので…。
早速登録していきましょう。

APIキーの取得

APIキーを取得するには、Create an AppというところからApp登録が必要らしく。
早速そこに行ってApp登録を…。

"Create an App- App登録画面"

…ゑ?
あれ、ボタン押せば登録できないの…なんか入力フィールドがいっぱいある…。
え、なんか面倒そう…もっと気軽にAPIキー貰えないのか…。

気になって調べたところ、どうやら2018年7月24日よりAPIを利用した悪質なBot等を規制するため、Twitter社がTwitterAPIの使用ハードルを上げたらしく…。
プラットフォームの健全性向上を目指す開発者向けの新しい要件

どうしてAPIを使うのかとか、どの様にしてAPIを実装するのかを書かないと、App登録…APIキー取得ができないみたいです。うへぇ。
おまけに全て英文で…入力項目の中には「〇〇字以上」入力しないといけない項目も。
なんだこの面倒くささは…。

まぁ嘆いていてもAPIキーは降ってきませんから…大人しく登録する事にしましょう。
ちなみに入力項目は下記のような感じでした。

  • App name(アプリ名)
  • Application description(アプリケーションの説明)
  • What use case(s) are you interested in?(どんなユースケースに興味があるか)
  • Website URL(WebサイトのURL(作成するAPPのユーザー認証画面等に掲載される))
  • Tell us how this app will be used(アプリの使用方法)

色んな項目があり、中には「え?」と戸惑うものもありましたが…。
Google翻訳で英文を読み進めたり、入力項目の英訳をしたりしながら何とか入力。
Google翻訳の強さを知りました…。
(ちなみにWebサイトのURLは当ブログのURLにしときました。良かったのかなぁ…。)

全ての入力を終えたところで「Create」!
すぐにAppの登録が終わり…こんな感じの画面が。

"App画面- details画面"

右上にある「Edit」ボタンで先ほど登録した情報を修正することも可能みたいです。
まぁともあれ無事に登録できました…。

そして、肝心のAPIキーを取得するため…上部の「Keys and tokens」タブをクリック。
すると、こんな画面に。

"App画面- Keys and tokens画面"

なんか色々ありますね…。
調べてみたところ、各キーにはこんな役割があるみたいです。

  • Consumer Key(API Key): アプリケーションAPI Key、アプリケーションごとに付与されるユニークなID
  • Consumer Secret(API Secret): アプリケーションのAPIシークレットキー
  • Access Token: 対象となるユーザーがそのアプリ用に発行されるものトークン、これが紐付けられてるユーザーはアプリ側から操作(権限選択制)可能に
  • Access Token Secret: アクセストークンのシークレットキー

    ※参考元記事: Twitter API Key を取得する方法 | phiary

Access TokenAccess Token Secretは、「このApp作成者」のものみたいです。
これらのキーを使えば、App開発者自身のTwitter情報にはアクセスできますが…。
他のアカウントの情報にはアクセスできないみたいですね。

ちなみに「Permissons」タブからは、「このAPIがどの操作まで可能であるか」を設定出来るそうです。
大きく分けて下記の3段階になっていました。

  • Read-only
  • Read and write
  • Read, write, and direct messages

今回私が作ろうとしてるものは、おそらくRead-onlyので大丈夫そうですね。

次回記事へ…

次からはこのAPIキーを使って、色々プログラミングしていきたいと思います。
使用言語はNode.jsになりそうですが…余裕があれば、Rubyとかでもやってみたいですね。

それではー。