Twitter APIの利用と、開発者アカウントの取得

Twitterと連携したいWebサービスは、「Twitter API」を利用することになる。
それにはまず、開発者アカウントを取得する必要がある。
※以下の説明は2020年6月1日時点のもの。

開発者アカウント申請手順 入口

  • 申請窓口がどこにあるか非常にわかりにくい。とりあえず次の要領で。
    1. 登録したいアカウントでTwitterにログインする。
    2. 開発者用サイトのトップページにアクセスする。
      https://developer.twitter.com/
      ページ左上の「Developper▼」のプルダウンメニューを開く。
      未登録なら「Apply」というリンクがあるので確認。
      ※すでに登録済みなら「Apply」リンクは出てこない。
    3. 「Apply」をクリックして「Apply for access」ページを開く。
      https://developer.twitter.com/en/apply-for-access
    4. 「Apply for developer account」をクリックすると、入力フォームが開く。
  • 以下、項目の入力作業へ。

開発者アカウント申請手順 項目の記入

  • 何ヵ所かの英文記入欄は、Google翻訳など利用して埋める。 目安としては「日本語→英語」の結果を「英語→日本語」に再翻訳して意味が通れば問題なし。
    1. 主な申請理由:
      適当に選択する。
      ※今回は「Hobbist」の「Exploreing API」にしてみた。
      「Next」をクリックすると次のページへ。
    2. 開発者アカウント名の選択:
      Twitterのアカウント名かユーザー名のどちらかを選べる。
      また電話番号を登録していないと、ここで登録を求められる。 電話番号を入力するとSMSで番号が送られてくるので認証する。
    3. 個人かチームか選択:
      Individual developer account — 個人アカウント
      Team developer account — チームアカウント
    4. メールアドレス:
      デフォルトはTwitterの登録メールアドレス、変更も可。
    5. 国名の選択、呼び名の設定、お知らせメールの有無:
      お好きに設定。「呼び名」は何だろう?メールで使われるのかな?
      「Next」をクリックすると次のページへ。
    6. APIの用途を英文で記入:
      例 -- We want to allow our customers to tweet the information they have obtained in our application. The frequency of tweets is at most several times a day. We also want to allow our customers to authenticate their account using twitter.
    7. Twitterのデータを読み出して解析するか?
      Yesを選んだ場合は、その用途を英文で記入。
    8. ツイート、リツイート、DM送信をおこなうか?
      Yesを選んだ場合は、APIの種類ごとの使用予定を英文で記入:
      例 -- Our application uses the tweet function. The retweet function and direct message function are not used.
    9. 収集したデータや分析結果を外部に公開するか?
      Yesを選んだ場合は、その用途を英文で記入。
      「Next」をクリックすると次のページへ。
    10. 最終確認:
      「Looks good!」をクリックすると申請完了。
  • 申請が受理されると、メールでお知らせが来る。
    ※反応は早かった。おそらく機械的にOKを出しているのではないか。

アプリの設定を登録

  • 開発者アカウントが取得できたら、次はアプリごとの設定をおこなう。
    https://developer.twitter.com/en/apps
  • 上記で「Create an app」ボタンをクリックするとアプリ登録ページが開く。
    https://developer.twitter.com/en/apps/create
    ここで以下の項目を記入していく。
    1. App name:
      32文字以内のアプリ名。
    2. Application description:
      200字以内の説明。
      例 -- Our application has multiple functions. You can check your fortune, check your appointments today, and much more.
    3. WebSite URL:
      アプリのWebサイト。
    4. Enable Sign in with Twitter:
      ツイッター経由で認証するならチェック。
    5. Callback URLs:
      OAuth認証用。あとで修正可能だし適当でもよいが、空白だと受理されない。
    6. Terms of Service URL:
      アプリの概説ページ。省略可能。
    7. Privacy policy URL:
      プライバシーポリシーのページ。省略可能。
    8. Organization name:
      運用組織の名前。省略可能。
    9. Organization website URL:
      運用組織のWebサイト。省略可能。
    10. Tell us how this app will be used:
      アプリの利用形態。Twitter社のスタッフにしか見えない。たぶん。
      例 -- This application presents various information to our customers. For example, today's fortune, or check for web updates.
  • ここまでの項目を記入したら「Create App」ボタンをクリックする。
    Twitterのポリシーが表示されるので、再度「Create App」ボタンをクリックする。
    以上でアプリ登録完了である。

アプリの設定や認証コードの確認

  • 登録したアプリ情報はアプリ一覧ページに追加されている。
    https://developer.twitter.com/en/apps
  • 一覧ページで「Details」ボタンをクリックすると、 アプリ詳細ページが開く。
  • アプリ詳細ページで「Edit」ボタンをクリックすると、 登録情報が修正できる。
  • アプリ詳細ページで「Keys and Tokens」をクリックすると、 アプリを識別するためのAPIキーと秘密キーが表示される。
  • ここでさらに「Genarate」ボタンをクリックすると、 アプリ利用者を識別するためのアクセストークンと秘密トークンが作成される。
    ※セキュリティのためトークンは1度しか表示されない。 記録しないまま忘れてしまった場合は「Revoke」ボタンで破棄してから再度「Generate」する。
  • アプリ詳細ページで「Permissions」をクリックすると、 アプリのパーミッションが設定できる。 パーミッションに関する詳細は次のページを参照。
    https://developer.twitter.com/en/docs/basics/apps/guides/app-permissions
  • アプリのパーミッション設定を変更したら、 アクセストークンを「Regenarate」で作り直さないといけない。
  • アプリに自動ツイートさせるには「Read and write」のパーミッションが必要となる。 ただしデフォルトで「Read and write」なので、ここでは変更する必要がない。
  • あとで調べたら、デフォルトのパーミッションは「Read only」と解説しているサイトもあった。 ここまでの選択により変わってくるのかもしれない。

APIキーとアクセストークン

  • TwitterAPIは、
    1. APIキー
    2. 秘密キー
    3. アクセストークン
    4. 秘密トークン
    という4つのコードでユーザー認証を行う。それぞれの用途は次の通りである。
  • APIキーと秘密キー:
    アプリ自体の認証コード。Twitterがアプリごとに発行する。 これをチェックすることで、どのアプリがTwitterAPIを実行しているか判定できる。
  • アクセストークンと秘密トークン:
    アプリ利用者の認証コード。アプリが自分のユーザーに個別に発行する。 これをチェックすることで、アプリが誰の権限でTwitterAPIを実行しているか判定できる。

Twitterにアクセスしてみる

  • キーとトークンが入手できたので、TwitterAPIを試しに使ってみよう。
    まず自分(@webservicetokyo)の最近の投稿を表示してみる。