ハマりポイントが結構あって苦労したので備忘録を残しておく。
使用するライブラリは『TwitterOAuth』、2019年11月3日の時点では問題なく使用できている。
最大のハマりポイントは「色々な記事を読んでどの関数を使えば良いかわからなくなる事だった」TwitterOAuth.phpを読んで自分で考えた方が早い場合もある。
基本は「接続してGETかPOSTでAPIを発行する」だけで難しくはない。3年ぶりくらいにAPI使うので、間違ってたら指摘して欲しい。
この記事の目的
Laravel環境にTwitterAPIを使用するための準備を行う
開発環境
Laravel Framework 6.0.1
API使用までの準備
TwitterDeveloperに登録する
TwitterDeveloperにアプリを登録する
ごめんなさいそのうち記事用意するか、参考リンク貼る。
TwitterOAuthをcomposerでインストール
composerについて前に調べたけどよく覚えてないので、「ライブラリなどをインストールしてくれる凄い奴」くらいの認識。
Laravelのインストールディレクトリに移動して以下のコマンドを実行する。
composer require abraham/twitteroauth
インストールが終わると以下のフォルダが増えている
\vendor\abraham\twitteroauth
twitteroauthについて
TwitterAPIを簡単に使えるようにしてくれるすごいやつ!以下公式リンク
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日本語約で目的の機能を探して実装しよう!
最後に
TwitterOAuthの解説している記事で、private関数に繋げないのでpublicに変えれば動きます!と紹介されているものがありスキルとリソースを問われる記事だと思った。(焦っていたのでpublicに変える手前まで行った)
時間がなくて詰まっている人はpublicに変えてとりあえず動くからヨシ!
時間があって考える時間のある人は「privateにアクセスする関数が用意されている」と気づいてコードを探して正しく使える。
自分の時間とスキルに合わせて考えてコーディングしよう。ハマって焦ると雑になるから余裕を持とう(戒め)
use文書き忘れたり、キーのコピペミスったり、リクエストの第1引数にAPIのURLそのまま貼ったり、して無茶苦茶ハマった。
また文字数2000近いもう少し簡潔に書こう。
コメント