Twitter」カテゴリーアーカイブ

CakePHP 1.3 TwitterKit Plugin

TwitterKit Plugin

OAuth認証に対応したTwitterに関するCakePHPのプラグインです。

ダウンロード&設置方法

下記からダウンロード。
設定方法も書かれています。
Pluginなのでapp/plugin以下にDL&展開したものを放り込むだけ。
TwitterKit ダウンロード

また、下記のリンク先にTwitterKitの作成者が勉強会の発表用に作ったスライドの資料があります。
第2回CakePHP勉強会@福岡 LT発表資料

実際に作成してみる

上の資料をもとに、実際にコードを入力して同じものを作成してみました。
無事に、ちゃんとリバースしたツイートができました^^

最初、わからなかった点を1つだけ。。。
userのログイン処理の部分です。
login.ctpの中で、
TwitterFormHelpler::oauthLink()
が呼ばれています。

そのままlogin.ctpを使う場合は、次のことに注意が必要です。
oauthLink()の中ではjQueryのコードをbuffer();しています。
したがって、どこかで、writeBuffer()する必要があります。
自分の場合はlogin.ctpに追記しましたが、layouts/default.ctpで出力した方がいいようです。

そうしないと、読み込み中と表示されたままになってしまいます。

Twitterでアプリケーションにログインさせたい場合は、
まず、アプリケーションの登録の設定で、Twitterをログインに使用するにチェックをいれます。
そんでもって、oauthLink($options)の$optionsの設定で
‘authenticate’ => true
にすればそれ用のlinkが作成されます。

他の機能も少しずつ使ってみようかと思います。

CakePHP Twitter連携 OAuthConsumerを使ってみた

完成イメージ

Twitterへの投稿を 

    $this->Twitter->tweet(“つぶやくぞ”); 

という具合に実行できるようにする。 

準備

Basic認証での投稿はできなくなるらしいので、OAuth認証によるツイートが出来るようにする。 

すでにOAuth認証による投稿ができるクラスとComponentを作っている人がいるので、それを利用する。 

参考にしたサイトではClassを使っていたので、ここではComponentを使ってみる。 

また、ここで作成するものは、ACCESS TOKENを直接WEBページから取得するので、個人的な利用の場合のみ使用可能。 

OAuthConsumerComponetをダウンロード
http://code.42dh.com/oauth/ 

参考にしたサイト: http://www.zontheworld.com/blog/archives/119 

概要

  1. Twitterのアカウントから必要な情報を取得する。
  2. DLしたOAuthConsumerComponentの設定。
  3. TwitterComponentの作成。
  4. ツイート!

Twitterの設定

アプリの登録

ツイッターにログインし 

http://twitter.com/apps 

にアクセス。参考サイトと同様にして、アプリの登録を済ませる。 

必要情報の取得 (TOKEN)

Consumer Key & Consumer Secret

登録したアプリケーションの詳細から取得。 

Access Token & Access Token Secret

http://dev.twitter.com/apps/にアクセス。 

登録したアプリの詳細をみる。 

My Access Tokenをクリック。 

CakePHP の処理

OAuthConsumerComponentの設定

DLしたものを展開して、 

controllers/componetsを自分のcontrollers/componetsに配置。 

vendors/OAuthを app/vendorsに配置。
 

// 取得したToken等をapp/config/bootstrap.phpに追記
define('TWITTER_CONSUMER_KEY', '**************');
define('TWITTER_CONSUMER_SECRET', '**************');
define('TWITTER_ACCESS_TOKEN', '**************');
define('TWITTER_ACCESS_TOKEN_SECRET', '**************');

 

// app/controllers/components/oauth_consumers/twitter_consumer.php
class TwitterConsumer extends AbstractConsumer {
    public function __construct() {
        parent::__construct(TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET);
    }
}

 TwitterComponentの作成

// app/components/twitter.php
<?php
class TwitterComponent extends Object { 
 // Oauth認証を使うためのコンポーネント
 public $components = array('OauthConsumer'); 

 /**
  * ツイートする
  * @param string $tweet ツイートする内容
  * @return
  */
 function tweet($tweet){
  $tw = $this->OauthConsumer->post(
    'Twitter',
    TWITTER_ACCESS_TOKEN,
    TWITTER_ACCESS_TOKEN_SECRET,
    'http://twitter.com/statuses/update.json',
    array('status' => $tweet)
   );
  return $tw;
 }
}
?>

TwitterComponentの使い方

class HogeController extends AppController{
    public $name = 'Hoge';
    public $components = array('Twitter');

    function example(){
        $message = "hogedehogesuru";
        $this->Twitter->tweet($message);
    }
}