Twitter投稿プラグイン開発について3

 

Twitter投稿プラグインも三回目

前回まででIDとパスワードをキャッシュに保存まではできました。

 

後は

ブログエントリー公開時にTwitterに通知メッセージを送るだけ!

 

あと、もう少しです

Twitterに投稿するタイミングを考えると、エントリーの公開設定を公開にし、新規作成、または新規保存の時になります。

 

始めは記事(エントリー)を新規作成するときに、動作するメソッドをinitメソッドに追加しておきます。

function init(){
CMSPlugin::addPluginMenu(self::PLUGIN_ID,array(
"name" => "ブログ更新つぶやきプラグイン",
"description" => "ブログからの記事投稿時に記事のタイトルとURLをTwitterでつぶやきます。",
"author" => "日本情報化農業研究所",
"url" => "http://www.n-i-agroinformatics.com",
"mail" => "soycms@soycms.net",
"version" => "1.0"
));

CMSPlugin::addPluginConfigPage(self::PLUGIN_ID,array(
$this,"config_page"
));

//ここに追加します。
if(CMSPlugin::activeCheck(self::PLUGIN_ID){
CMSPlugin::setEvent("onEntryCreate",$this->getId(),array($this,"doPost"));
}
}

onEntryCreate(エントリー新規作成時)にdoPostメソッドが動作するように追加しました。

 

続いて、doPostメソッドにTwitter投稿に関する動作を入れる。

(あらかじめ、PostEntryTwitter.phpと同じディレクトリにtwitterAPI.phpを設置しておく)

function doPost(){
$mes = "aaa"; //Twitter投稿のメッセージ

include(dirname(__FILE__) . "/twitterAPI.php");

if(!$this->twitter_username || !$this->twitter_psw){

return false;

}elseif(!$this->twitter_username && !$this->twitter_user_psw){

return false;

}else{

$twitter_status=postToTwitter($this->twitter_username, $this->twitter_psw, $mes);
return $twitter_status;

}
}

これで、記事(エントリー)を新規作成したら、必ずTwitterに投稿されるようになりました。

(テスト送信する場合は、PHPのCurlモジュールを必ず有効にしておいてください)

 

補足

[twitterAPI.php]

function postToTwitter($username,$password,$message){

$host = "http://twitter.com/statuses/update.xml?status=".urlencode(stripslashes(urldecode($message)));

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $host);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_POST, 1);

$result = curl_exec($ch);
// Look at the returned header
$resultArray = curl_getinfo($ch);

curl_close($ch);

}
name :
URL :
Comment :

トラックバック -

Blog Post

Comments

Trackbacks