Laravel環境にTwitterAPI使用のための備忘録

備忘録

ハマりポイントが結構あって苦労したので備忘録を残しておく。
使用するライブラリは『TwitterOAuth』、2019年11月3日の時点では問題なく使用できている。
最大のハマりポイントは「色々な記事を読んでどの関数を使えば良いかわからなくなる事だった」TwitterOAuth.phpを読んで自分で考えた方が早い場合もある。

基本は「接続してGETかPOSTでAPIを発行する」だけで難しくはない。3年ぶりくらいにAPI使うので、間違ってたら指摘して欲しい。

この記事の目的

Laravel環境にTwitterAPIを使用するための準備を行う

開発環境

Laravel Framework 6.0.1

API使用までの準備

TwitterDeveloperに登録する

TwitterDeveloperに登録してきた!項目が多いので結構大変
TwitterAPIが使用したかったので、頑張って登録してきました。(現在審査依頼中) 結構項目が多い上に英語のページで1時間くらいかかったので、今後登録する人へのメモとして残しておきます。Twitterではスクレイピングが禁止されているの...

TwitterDeveloperにアプリを登録する

ごめんなさいそのうち記事用意するか、参考リンク貼る。

TwitterOAuthをcomposerでインストール

composerについて前に調べたけどよく覚えてないので、「ライブラリなどをインストールしてくれる凄い奴」くらいの認識。

Laravelのインストールディレクトリに移動して以下のコマンドを実行する。

composer require abraham/twitteroauth

インストールが終わると以下のフォルダが増えている
\vendor\abraham\twitteroauth

twitteroauthについて

TwitterAPIを簡単に使えるようにしてくれるすごいやつ!以下公式リンク

TwitterOAuth PHP Library for the Twitter REST API
The most popular PHP library for use with the Twitter OAuth REST API

use文をコントローラに記述する

use Abraham\TwitterOAuth\TwitterOAuth;

APIを使用するための各種キーを用意

Consumer API keys(API keyとAPI secret keyの2つ)
Access token
access token secret

これらのキーとトークンは、TwitterDeveloperのアプリの詳細→「Keys and tokens」で見れる。これらは公開されないようにしなければならない。テストコードにベタ打ちして間違えてgitで公開とかしないように。

サンプルコード

GETでタイムラインを表示する。もしPOSTのAPIを使用する場合はTwitterOAuthの「post」関数を使おう。

$consumer_key ='ここにキーを入力';
$consumer_secret ='ここにキーを入力';
$access_token ='ここにキーを入力';
$access_token_secret ='ここにキーを入力';

// APIに接続
$connection = new TwitterOAuth($consumer_key, $consumer_secret, $access_token, $access_token_secret);

// アクセストークンを使用しているユーザーのタイムラインを10件取得する
 $request = $connection->get('statuses/user_timeline',
   array(
   'count'=>'10',
   ));

$requestをビューに渡して{{print_r($results)}}で動いているかを確認する。確認できたら、以下のTwitterAPI日本語約で目的の機能を探して実装しよう!

REST API - Twitter 開発者ドキュメント 日本語訳
このサイトではTwitter開発者ドキュメントの日本語訳を公開しています。Twitter API やTwitter Cardなど、Twitterでの開発に役立つ様々な情報が記載されています。

最後に

TwitterOAuthの解説している記事で、private関数に繋げないのでpublicに変えれば動きます!と紹介されているものがありスキルとリソースを問われる記事だと思った。(焦っていたのでpublicに変える手前まで行った)
時間がなくて詰まっている人はpublicに変えてとりあえず動くからヨシ!
時間があって考える時間のある人は「privateにアクセスする関数が用意されている」と気づいてコードを探して正しく使える。

自分の時間とスキルに合わせて考えてコーディングしよう。ハマって焦ると雑になるから余裕を持とう(戒め)
use文書き忘れたり、キーのコピペミスったり、リクエストの第1引数にAPIのURLそのまま貼ったり、して無茶苦茶ハマった。

また文字数2000近いもう少し簡潔に書こう。

コメント

タイトルとURLをコピーしました