##APIとは
APIとは、ソフトウェアやアプリケーションなどの一部を外部に向けて公開することにより、第三者が開発したソフトウェア機能を共有できるものです。
上記だとまだ難しいと思うので、下記サイトをご覧ください。APIとはなにかを例を交えて、イメージしやすいようにまとめてあり、とてもわかりやすいです。
※参考
https://wa3.i-3-i.info/word12428.html
##Twitter APIとは
ツイートやタイムラインの取得、リツイートやいいねといったTwitterサービスを、公式のウェブサイトを経由せずに直接利用できるサービスです。
例えば、ツイートやリツイート、タイムラインの取得などウェブサイトにログインしてから行うと思います。しかし、TwitterAPIを用いることで、ウェブサイトを経由しなくても、ツイートなどを取得することができます。
ここで「Twitterアプリを使っているからウェブサイトは経由しない」という方がほとんどだと思います。しかし、そのアプリこそがAPIの活用例の一つなのです。
##Twitter APIの機能
TwitterのAPIは大きく5つのAPI機能に分かれています。
・キーワード検索できる__「サーチAPI」__
・アカウントプロフィールを扱う__「アカウントAPI」__
・今現在のツイートを扱う__「リアルタイムAPI」__
・DM機能の__「ダイレクトメッセージAPI」__
・広告機能と連携できる__「広告API」__
##TwitterAPI制限とは
TwitterAPlと合わせてよく聞くのが__「API制限」__という言葉です。
ツイートなどのサービスを利用するとき、どうしてもTwitterのサーバーに接続必要があります。APIを使わない場合はウェブサイトからサーバーに投稿を反映させますが、APIを使う場合はプログラムを用いて直接サーバーにツイートを反映させます。
APIを使うと、ウェブサイトとは違って大量にツイートを投稿するなど「悪意ある攻撃」が簡単にできてしまいます。これをしてしまうと、Twitterのサーバーの負荷が高くなり、サービスの提供が不安定になってしまいます。
そこで一定時間あたりにサーバーがリクエスト(投稿などを反映させること)を受け付ける数に上限を設けています。例えば、フォロワーの取得であれば、「1分に1リクエストまで」といった制限があります。これを超えてAPIリクエストを送ってしまうと、アカウントが「有害なもの」をして一時的に制限されてしまいます。これがいわゆる「API制限」を食らった状態です。
##Twitter APIでできること
####①タイムラインの取得
自分のタイムラインはもちろん、特定ユーザーのつぶやき一覧や、世界中からランダムに取得、地域のツイートなどの取得ができます。
####②ツイートの投稿
APIを用いると、Pythonなどのプログラミング言語などを用いてツイートの投稿ができるようになります。そのため、外部サービスを使わずとも自分で定期的にツイートを行うbotを作ることができます。
####③リツイートやいいねの実行
ツイートだけではなく、リツイートやいいねの実行や取り消しを行うことができます。
これを用いると、自分のツイートを定期的にRTしたり、フォローしているユーザーのツイートをいいねしたりすることができます。
####④フォローやアンフォローの実行
フォロー、アンフォローなどの操作もAPIから行うことができます。
フォロー・アンフォローの操作はAPI制限がツイートに比べて厳しいため、気をつける必要がある。
####⑤ツイートの検索
ツイートの検索は、ユーザーのトレンド予測などに大変役立ちます。ツイート数やツイート内容を分析することもできます。
※TwitterAPIを使うには申請が必要です。
####申請は下記を参考
####TwitterAPI一覧
##TwitterAPI ✕ PHP Twitter機能のコード集
【PHP】Twitter API(ツイート検索・ツイートする・いいねする・トレンド検索する・APIの制限数を確認する)
#####【PHP】TwitterのトレンドをAPIから取得する&HTML出力
#####LaravelでTwitter認証を実装する
##TwitterAPIを使った面白い機能
#####就寝中であることをtwitterの名前欄でお知らせ
https://qiita.com/matsuri0828/items/df96ff51f5a4ea00d130
#####Twitterで抽出したツイートをTL形式にしてサイトに埋め込む
https://qiita.com/dan-go/items/f29101ffd7da5510fde1
#####Twitterプロフィール画像が自動更新される「うたた寝bot」
https://qiita.com/monohalu/items/ee7b37d8db7dd1949143
#####TwitterのTLを見せ合えるミニサービス
https://qiita.com/dala00/items/c0fe71afc7a0c57ce0e6
#####ツイートの性格分析による本のマッチングシステム
https://qiita.com/Mocchaso/items/ebccd2a98ceb50cfee20
#####Twitter 誹謗中傷撃退マシン
https://qiita.com/pigretyasushi/items/e9900708463b5c4bc36a
#####Twitterのつぶやきをテキストマイニングによって可視化する
https://qiita.com/shibata0523/items/8227131dd938ee012af3