header image
header image

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

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

 

 

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

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

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

  1. witter Appを作成し、アクセストークンを取得
  2. twitteroauthをcomposerでインストール
  3. Controllerからtweet  

 

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

 

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

  • Consumer Key
  • Consumer Secret
  • Access Token
  • Access Token Secret
を取得できます。 (後の手順で使用します。)

 

 

1.Create Newをクリック

twitter

 

 

2.必要な情報を入力

  twitter

 

3.トークンの確認

 

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

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

 

 

②twitteroauthをcomposerでインストール

 

 

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

composer require abraham/twitteroauth

 

Controllerからtweet

 

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

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

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

 

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"
             );
    }
}