大企業営業から未経験ITエンジニアを目指すブログ

アラサー大企業営業から未経験ITエンジニアを目指すブログ。日々学んだことを忘備録的に記します。

LaravelアプリにTwitter連携自動ツイート機能を追加

Laravelで英単語帳アプリを作っています。

今回はユーザーが英単語を登録した際、自動でTwitter公式アカウントにツイートする機能を追加することにしました。

 

Twitterデベロッパーの登録

下記参照。

https://masatoshihanai.com/php-twitter-bot-01/

 

②Laravelアプリ関連

下記参照。

https://qiita.com/tiwu_official/items/0fdb193a44b6eeb937fa

・.envファイルにアクセストークンやら4つ追記。

・composer require abraham/twitteroauth でインストール。

・カード投稿のコントローラstoreアクションに下記追記。

use Abraham\TwitterOAuth\TwitterOAuth;

public function store(Request $request) {

//中略

if ($audience_selector == "public"){

$twitter_api_key = env('TWITTER_API_KEY');
$twitter_api_secret_key = env('TWITTER_API_SECRET_KEY');
$twitter_access_token = env('TWITTER_ACCESS_TOKEN');
$twitter_access_token_secret = env('TWITTER_ACCESS_TOKEN_SECRET');

$twitter = new TwitterOAuth($twitter_api_key, $twitter_api_secret_key, $twitter_access_token, $twitter_access_token_secret);

if (mb_strlen($english) > 20){
$short_english = mb_substr($english, 0, 20) . "...";//23
} else {
$short_english = $english;
};

if (mb_strlen($japanese) > 20){
$short_japanese = mb_substr($japanese, 0, 20) . "…";//23
} else {
$short_japanese = $japanese;
};

$twitter->post("statuses/update", [
"status" =>
'新しい投稿がありました!' . PHP_EOL .
'英:' . $short_english . PHP_EOL . '日:' . $short_japanese . PHP_EOL .
'http://my-dictionary2019.herokuapp.com/'
//140-12-39-2-2=85
]);
}

}

工数

参考サイトのおかげで意外とすぐでできた。3hくらい。

 

④今後やりたいこと

・単語カード作成Viewに「公開設定にした場合、My DictionaryのTwitter公式アカウントから単語カード情報が自動で投稿されます。(ユーザー名は表示されません。)Twitter公式アカウントに投稿されたくない場合はチェックしてください」のチェックボタン

・メインページに押すと開くサンプルアカウント情報

Twitter公式アカウントのタイムラインをトップページに表示?

Twitterログインしてユーザーが自分のアカウントからツイート?(できるのか?paizaとかの「この喜びを伝えましょう」みたいなやつ)