CakePHP3 twitteroauthを使って、tweetする( composer install )

2018年8月26日

 

 

今回はtwitterで
CapkePHP3からtweetする方法を紹介します。

このtwitteroauthというライブラリを使います。
https://github.com/abraham/twitteroauth

流れは以下のようになります。

①Twitter Appを作成し、アクセストークンを取得

②twitteroauthをcomposerでインストール

③Controllerからtweet

 

 

 

Twitter Appを作成し、アクセストークンを取得

 

 

このリンクから
https://apps.twitter.com/
twitter Appを作成すると、

  • Consumer Key
  • Consumer Secret
  • Access Token
  • Access Token Secret

を取得できます。
(後の手順で使用します。)

 

 

1.Create Newをクリック
Create Twitter App

 

 

2.必要な情報を入力

 
Register Twitter App

 

3.トークンの確認

 

作成が完了すると、
以下のような画面になるので、
Keys and access Tokenタブを選択し、

  • Consumer Key
  • Consumer Secret
  • Access Token
  • Access Token Secret

が表示されていることを確認します。
(アクセストークンがない場合は、Token Actionsあたりにあるボタンを押して作成する。)
my twitter app

 

 

②twitteroauthをcomposerでインストール

 

 

compserを使って、
twitteroauthをダウンロードします。

composer require abraham/twitteroauth

 

Controllerからtweet

 

実際にtweetするコードは以下になります。

実際は、
トークンは定数ファイルなどで外だしした方が良いかもしれません。

また、
今回は、Controllerにtweetの処理を記述しましたが、
tweet,create_twitter_oauthあたりのメソッドは、
モジュールにまとめて他のコントローラからも使えるようにすると
再利用できて良いと思います。

 

TwitterController


namespace App\Controller;
use Abraham\TwitterOAuth\TwitterOAuth;

class TweetController extends AppController 
{ 
  function postTweet(){ 
   // Hello Worldと呟く 
   $this->tweet("Hello World!!!!!");<
  }
   
  function tweet($text){
     if ( $text != null && count($text) > 0 ){
         $oauth = $this->create_twitter_oauth();
         $result = $oauth->post('statuses/update', array("status"=> $text ));
     }
  }

  private function create_twitter_oauth(){
    // ①で入手したトークンを引数に渡し,TwitterOAuthオブジェクトを生成する。
    return new TwitterOAuth(
             "Your TWETTER_CONSUMER_KEY",
             "Your TWETTER_CONSUMER_SECRET",
             "Your TWETTER_ACCESS_TOKEN",
             "Your TWETTER_ACCESS_TOKEN_SECRET"
             );
    }
}