Posted at

LaravelでTwitterの投稿を実装する


はじめに

Laravelでアニメの聖地の写真を共有するサイトを作った際に、写真が投稿されるたびにサイトのアカウントで投稿する機能を実装したので方法を書いていきたいと思います。

作ったサイトはこちらです。 

実際に投稿するとこのようにTwitterに呟かれます。


前提


  • Laravel version 5.6

  • Twitter Developerの登録済み


abraham/twitteroauthの設定

Twitterの投稿はabraham/twitteroauthを利用します。

まずはインストール。

composer require abraham/twitteroauth

.envにトークンなどを設定します。


.env

TWITTER_CLIENT_ID = TwitterのApi Key

TWITTER_CLIENT_SECRET = TwitterのAPI Secret Key
TWITTER_CLIENT_ID_ACCESS_TOKEN = TwitterのAccess Token
TWITTER_CLIENT_ID_ACCESS_TOKEN_SECRET = TwitterのAccess token secret


Laravel

投稿はとても簡単です。


TwitterController.php

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Abraham\TwitterOAuth\TwitterOAuth;

class TwitterController extends Controller
{
// 投稿
public function tweet(Request $request)
{
                $twitter = new TwitterOAuth(env('TWITTER_CLIENT_ID'),
env('TWITTER_CLIENT_SECRET'),
env('TWITTER_CLIENT_ID_ACCESS_TOKEN'),
env('TWITTER_CLIENT_ID_ACCESS_TOKEN_SECRET'));

$twitter->post("statuses/update", [
"status" =>
'New Photo Post!' . PHP_EOL .
'新しい聖地の写真が投稿されました!' . PHP_EOL .
'タイトル「' . $title . '」' . PHP_EOL .
'#photo #anime #photography #アニメ #聖地 #写真 #HolyPlacePhoto' . PHP_EOL .
'https://www.holy-place-photo.com/photos/' . $id
]);
}
}


改行やハッシュタグもこのように投稿することができます。


終わりに

前回のTwitterログインもそうでしたが、Twitter Developerの登録のほうが難しいくらい投稿も簡単でした。

abraham/twitteroauthは投稿だけでなく取得なども可能だそうです!