人生の恥は書き捨て

プログラムとかいろいろ

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にはまだあまりメソッドが用意されてない?ようなのですが、
queryメソッドを使って自分でリクエスト内容を指定すれば、しっかりTwitterApiを利用できます。

ツイートの検索

<?php
Route::get('/', function(){
	return $array = Twitter::query('search/tweets', 'GET', array('q' => '検索ワード', 'format' => 'array'));
});

これで指定したワードを含むツイートが取得できます。