Twitter Developer 入門

# 概要
* [Twitter Developer 入門ページ](https://developer.twitter.com/en/docs/basics/getting-started)が英語で分かりづらかったのでまとめてみました
* 対象はTwitter APIをこれから使ってみようと思っている入門者の方向けです

# 開発者用プラットフォームを使うにあたって
* Twitterの開発者用プラットフォームは、Twitterのオープンでグローバルなリアルタイム通信ネットワークの力を活用できるようにする多くのAPI製品、ツール、およびリソースを提供する
* プラットフォームで利用可能なさまざまなツールとAPIを使用して構築できるもの、および開始するために必要なアクセスと情報を取得する方法について説明する
* 常に最新情報を入手することが重要

## どのツールとAPIが利用可能か
* Standard API
	* ツイートとタイムラインの投稿、取得、関与
	* ダイレクトメッセージの投稿と受信
	* パブリックアカウント情報の管理と取得
	* リストを作成および管理する
	* ユーザーのフォロー、検索、取得
	* トレンドを取得する
* Premium API
	* 検索ツイートAPIへの高度なフィルタリング機能とスケーラブルなアクセス、およびwebhook Account Activity APIを介したリアルタイムのパブリックアカウント、エンゲージメント、ツイート情報。
* Enterprise API
	* リアルタイムのツイートと公開アカウント情報、過去のツイート、ツイートの洞察など、Twitterデータへの企業レベルのアクセス
* Ads API
	* Twitter Adsプラットフォームとプログラムで統合
* Twitter for websites
	* Twitterコンテンツとソーシャルアクションをサイトに埋め込む
* Twitter Developer Labs
	* 開発者のフィードバックに基づいて構築されている実験的なエンドポイント


# 開発者用プラットフォームの始め方
## プラットフォームごとの異なる要件
プラットフォームごとに、特定のツールまたはエンドポイントの使用を開始するには、さまざまなレベルのアクセスと認証の種類が必要となる

* Standard API, Premium API, Enterprise API, Ads API, Twitter Developer Labsは開発者用アカウントが必要
* Enterprise APIは特別にEnterpriseアクセス要件が必要
* Ads APiは特別にAds APIアクセス要件が必要
* Twitter Developer Labsは特別にLabsアクセス要件が必要
* 認証要件
	* Standard API, Ads APIはOAuth 1.0aのみ必要
	* Premium API, Twitter Developer LabsはOAuth 1.0a, OAuth 2.0 bearer tokeが必要
	* Enterprise APIはOAuth 1.0a, OAuth 2.0 bearer token, Basicが必要
* Twitter for websitesに関しては開発者用アカウントも特別なアクセス要件も認証も不要

## Twitter for websitesの始め方
[Twitter Publish](https://publish.twitter.com/#)に埋め込みたいTwitter URLを打ち込めば、コードが出力される

## Twitter APIの始め方
1. [Twitter開発者アカウント](https://developer.twitter.com/en/docs/basics/developer-portal/overview)を申請して承認を受ける
2. [Twitter開発者アプリ](https://developer.twitter.com/en/docs/basics/apps/overview)を作成
3. [アプリのAPIキーとユーザーのアクセストークンを生成](https://developer.twitter.com/en/docs/basics/apps/guides/the-app-management-dashboard)
4. [アプリのbearer tokenを生成](https://developer.twitter.com/en/docs/basics/authentication/oauth-2-0/bearer-tokens)
5. 目的のAPIへのアクセスを適用し受け取る
6. 最初のリクエストを成功させるために必要なドキュメント、ライブラリ、コード例、およびその他のリソースを見つける

### Premium APIの始め方
承認された開発者アカウントを取得したら、プレミアムの[「開発環境」](https://developer.twitter.com/en/docs/basics/developer-portal/guides/dev-environments)ページに移動できる。 このページでは、Twitter開発者アプリを使用して開発環境をセットアップし、無料のサンドボックス層の製品の使用を開始できる。 追加の機能やアクセスが必要な場合は、[サブスクリプション](https://developer.twitter.com/en/docs/basics/developer-portal/guides/subscriptions)ページから上位の階層にアップグレードできます

### Enterprise APIの始め方
Standard APIおよびPremium APIが提供する以上のアクセスが必要な場合は、エンタープライズフォームに記入して、エンタープライズ営業担当者と連絡を取る

### Ads APIの始め方
Ads APIにアクセスする必要がある場合は、Ads APIアプリケーションフォームに記入して、広告営業担当者と連絡を取る

# 重要なリソース
## 開発者用ドキュメント
Twitter開発者Webサイトには、大量の技術リソースが含まれている。Twitter APIを構成する以下の主要な概念を確認することから始めましょう
* [認証](https://developer.twitter.com/en/docs/basics/authentication/overview)
* [レート制限](https://developer.twitter.com/en/docs/basics/rate-limiting)
* [レスポンスコード](https://developer.twitter.com/en/docs/basics/response-codes)
他の有用なページやセクションは以下のようなものがある
* [API reference index](https://developer.twitter.com/en/docs/api-reference-index)にはTwitter開発者プラットフォームで利用可能なすべてのエンドポイントがリストされている
* [Tutorials](https://developer.twitter.com/en/docs/tutorials)のセクションではTwitter開発者プラットフォームを使用してさまざまなタスクを実行するのに役立つさまざまなトピックを取り上げている
* [data dictionary](https://developer.twitter.com/en/docs/tweets/data-dictionary/overview/intro-to-tweet-json)ではツイート、ユーザー、および地理データオブジェクトを記述する

## プラットフォームの更新
プラットフォームの開発者に関連するAPIの停止、更新、およびその他のニュースに関する重要な詳細を提供するため、以下のページを必ずブックマークすること
*  [API status](https://api.twitterstat.us/)ページを購読して、機能停止に関する最新情報を受け取る
* [developer roadmap](https://trello.com/b/myf7rKwV/twitter-developer-platform-roadmap)を確認して、近日公開予定の新機能を確認
* [changelop](https://developer.twitter.com/en/docs/changelog/enterprise)を確認して、最近プラットフォームで何が変更されたかを確認
これらのリソースやその他のことなども[Stay informed](https://developer.twitter.com/en/stay-informed)ページにリストされている

## サンプルコード、ライブラリ、その他のツール
開発者用アカウントを作成し、必要なエンドポイントへの適切なアクセス権を取得したら、リクエストの作成は簡単。Twitter APIとの統合を容易にするために、次のツールの確認をお勧めする

### TwitterDev Github
[TwitterDev Github](https://github.com/twitterdev)ページでは、Twitterでサポートされるさまざまなスニペットとクライアントを見つけることができる。これらは、[Ads APIとの統合](https://github.com/twitterdev/twitter-python-ads-sdk)、[Account Activity APIの使用開始](https://github.com/twitterdev/autohook)、自分のシステムへの[Search APIの統合](https://github.com/twitterdev/search-tweets-python)などに役立つ。

### Twirl
twurlと呼ばれるHTTPラッパーを使用して最初のAPIリクエストをすばやく作成する。twurlは、OAuth 1.0aリクエストの認証を容易にするコマンドラインアプリケーション。

### RESTクライアント
[Postman](https://www.getpostman.com/)や[Insomnia](https://insomnia.rest/)などのRESTクライアントを使用すると、適切に設計されたビジュアルインターフェイスを使用してTwitter REST APIにリクエストを送信できる。 エンドポイントのHTTPメソッド、URL、認証、パラメーター、およびJSON本文を入力して、リクエストを開始することが必要。
また、Labsエンドポイント仕様をPostmanにすばやくインポートするために使用できるTwitter Developer Labsエンドポイント用のPostman Collection（開発者アカウントとLabsアクセスが必要）が構築された。 Postman Collectionは、Ads API全体でも利用できる。

### 他のコミュニティ作成ツール
過去数年にわたってコミュニティが構築したライブラリとリポジトリの一部のリストが[「Twitterライブラリ」](https://developer.twitter.com/en/docs/developer-utilities/twitter-libraries)ページに公開されている

## 動画
動画チュートリアルを見て学習したい場合は、ドキュメント全体に渡っていくつか存在している。
プラットフォームでボットの構築を開始するには[この動画](https://twitter.com/TwitterDev/status/1067094924124872705?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1067094924124872705&ref_url=https%3A%2F%2Fdeveloper.twitter.com%2Fen%2Fdocs%2Fbasics%2Fgetting-started)が役にたつ。

# わからないことがある場合
[デベロッパーフォーラム](https://twittercommunity.com/)にアクセスして、トピックを確認したり、質問したり、他の人から学びましょう