ようこそのお運びで、厚く御礼申し上げます。
さてさて、今回は更新時にツイートするプラグインを作ってみます。
記事を更新したら、Twitterにツイートしてみる(twitterOuth)
このようなプラグインはたくさんあるので今更ではありますがやっています(^^;)。
「更新時にツイートをする」ですが、基本は「更新時にメールをする」とかわりません。
なので、メール送信のこちらのコードを基本に作っていきます。
Twitter APIについてのおさらい
WordPressからTwitterにつぶやくには「Twitter API」を使う必要があります。
デベロッパーの登録等が必要になりますので、まだの方は一度参照してください。
今回もTwitter APIのOAuth認証はTwitterOuthを使います。
今回の仕様
- 更新時(公開・更新)にツイッターに投稿する。
画面フローについて
前準備:Twitter APIの権限確認
Twitter APIの[Permission]権限設定のページで「Write」を有効にしておいてくださいね。
プラグインファイルを作成していきます。
「wp-contents>plugins」ディレクトリに「paka3_new_tweet」ディレクトリを作成し、「paka3_new_tweet.phpを作成します。
twitterOuthはダウンロードしてディレクトリ毎同じディレクトリに置いてください。
クラスを構成をしてみる
メール送信のコードと同じなのですが、今回はクラスを作ってみます。
$a = new Paka3_new_tweet; class Paka3_new_tweet{ //############################## //初期設定&アクションフック //############################## function __construct(){ } //############################## //#ツイートをする関数 //############################## function paka3PostTweet($post_ID, $post){ } }
※部品化(関数化)は色々できますが今回は 複雑にはしません。
Twitter APIのOAuth認証の初期設定
twitterOAuthを読み込みます。
同じ外部ライブラリを多様化して、重複する場合があるので今回は「同じクラスがない場合に読み込む」としています。
if ( !class_exists('TwitterOAuth') ) { require_once("twitteroauth/twitteroauth.php"); }
APIキー等を設定し、TwitterAPIのオブジェクトを生成します。
$this->obj = new TwitterOAuth( $this->apiKey, $this->apiSecret, $this->accessToken, $this->accessTokenSecret);
更新時に実行するアクションフック
今回は細かいアクションではなく「更新時に実行する」アクションをフックしています。
add_action('publish_post', array( $this , 'paka3PostTweet' ), 10, 2);
取得できる引数は$post_idと$post(オブジェクト)です。
※もし、細かく分けたい場合はこちらを参考に作成してください。
こちらではtransition_post_statusをフックして、公開や更新等も状態を場合分けしています。
ツイートをする関数:paka3PostTweet
こちらではまず、ツイートをする本文を作成しています。
$title = $post->post_title; $link = get_permalink($post_ID); //ツイート本文 $message = $title."ブログを更新しました。".$title.$link;
TwitterOAuthの関数を使ってツイートをおこないます。
//投稿 $res = $this->obj->post( 'statuses/update', array( 'status' => $message ) );
※今回はエラー処理は行っていません。
コードを作成し、プラグインを有効にしてみる
今回のコードは以下のようになります。
管理画面のプラグインから有効化してみましょう。
応用編として
今回は、メール送信のカスタマイズでした。なのでメール送信の置き換えができると思います。
管理画面等を作って色々試してみてください。
今回のまとめ
ありきたいでしたが、今回はなぜかコレを書いていなかったので書いてみました。