Laravel + Twitter-l4でTwitter連携
はじめに
LaravelでTwitterApiを利用してみようと思いまして、
Laravel便利だし、きっとLaravel用のTwitterApiのライブラリもあるだろ、
と思って探したらTwitter-l4というのがあったので使ってみました。
https://github.com/thujohn/twitter-l4
Laravelの導入は以下を参考にどうぞ
【Laravel入門】 インストールから起動まで - 人生の恥は書き捨て
導入
インストール
composerを利用して、ライブラリをインストールします。
composer.jsonのrequierに "thujohn/twitter": "dev-master" を追加します。
"require": { "laravel/framework": "4.2.*", "thujohn/twitter": "dev-master" },
そしてコンソールでcomposer update します。
自分の場合はcomposer.pharをcomposerにリネームしてグローバルに置いているので,
composer update ですが、そうじゃない人は php composer.phar update ですかね。
あとかなり時間かかる(5分以上)ことがあって、
しかもその間コンソールに何も出ないので、おかしいかな?と疑いますが、
正常に動いていると思うので、気長に待ちましょう。
逆にエラーのときはすぐにエラーが表示されます。
次にLaravelからライブラリを読み込ませます。
app/config/app.phpを編集します。
providers の部分に 'Thujohn\Twitter\TwitterServiceProvider', を追加します。
'providers' => array( 'Illuminate\Foundation\Providers\ArtisanServiceProvider', 'Illuminate\Auth\AuthServiceProvider', . . <中略> . . 'Illuminate\Workbench\WorkbenchServiceProvider', 'Thujohn\Twitter\TwitterServiceProvider', ),
aliasesの部分に 'Twitter' => 'Thujohn\Twitter\TwitterFacade', を追加します。
'aliases' => array( 'App' => 'Illuminate\Support\Facades\App', 'Artisan' => 'Illuminate\Support\Facades\Artisan', . . <中略> . . 'View' => 'Illuminate\Support\Facades\View', 'Twitter' => 'Thujohn\Twitter\TwitterFacade', ),
設定
Laravel内に自分のTwitter アプリケーションの設定を書きます。
Twitterアプリはhttps://apps.twitter.com/で作ります。
作ったアプリのkeyなどをLaravelに設定します。
まず、設定ファイルの作成です。
コンソールで php artisan config:publish thujohn/twitter を実行します。
すると app/config/packages/thujohn以下に設定ファイルができます。
app/config/thujohn/twitter/config.php
<?php // You can find the keys here : https://dev.twitter.com/ return array( 'API_URL' => 'api.twitter.com', 'API_VERSION' => '1.1', 'USE_SSL' => true, 'CONSUMER_KEY' => '', 'CONSUMER_SECRET' => '', 'ACCESS_TOKEN' => '', 'ACCESS_TOKEN_SECRET' => '', );
ここに作ったアプリの情報をそれぞれ入力してください。
これで導入は終わりです。
使ってみる
では設定が終わったので早速使ってみましょう。
app/routes.phpに書いていきます。
最近のツイートの取得
<?php Route::get('/', function() { return Twitter::getUserTimeline(array('screen_name' => 'アカウントのスクリーンネーム', 'count' => 20, 'format' => 'json')); });
これでスクリーンネームを指定したアカウントの最新ツイート20件が取得できます。
ちなみに、formatはobject、json、arrayの3種類から選択出来て、defaultだとobjectになっています。
メンションの取得
<?php Route::get('/', function() { return Twitter::getMentionsTimeline(array('count' => 20, 'format' => 'json')); });
参考サイト
Twitter-l4
https://github.com/thujohn/twitter-l4
TwitterApiのクエリ
http://dx.24-7.co.jp/twitterapi1-1-rest-api/