Twitter REST API v1.1 で#タグ検索し、WordPressに下書き投稿。


restapi

 

ひさしぶりのカワタです。今年は勉強に励みたいとおもい、よくわかってないphpとwordpressを少しだけ勉強してみてます。
Twitter REST API v1.1を使って、#タグ検索し、Wordpressに下書き投稿させてみました。キャンペーンサイトなどで検閲が必要な時に使えるかも?

Twitter api 1.1をphpでさばくための便利なものがあるわけですけど、
twistoauthとかはかなりよさそうでしたが、途中で混乱を極め断念。。
次回にチャレンジ。

ということで、昔ながらのtwitteroauthをつかってみました。
※ただし、最新版がどうもうまく動かなかったので、昔にダウンロードしたものを使ってます。

<?php
require ‘wp/wp-blog-header.php’; //←wpのwp-blog-header.phpまでのパス
require_once(“twitteroauth/twitteroauth.php”);
$consumerKey = ”; //←ここはご自身のTwitterアカウントで取得してください。
$consumerSecret = ”; //←ここはご自身のTwitterアカウントで取得してください。
$accessToken = ”; //←ここはご自身のTwitterアカウントで取得してください。
$accessTokenSecret = ”; //←ここはご自身のTwitterアカウントで取得してください。

$twObj = new TwitterOAuth($consumerKey,$consumerSecret,$accessToken,$accessTokenSecret);
$req = $twObj->OAuthRequest(‘https://api.twitter.com/1.1/search/tweets.json’,’GET’,
array(
‘lang’ => ‘ja’,
‘q’ => ‘%23検索内容’, //←検索したいものを記述
‘count’ => ‘100’
));
$tweets = json_decode($req);

foreach ($tweets as $val) {
$my_post = array(
‘post_author’ => 1, //ユーザーID
‘post_title’ => $val->user->name,
‘post_content’ => ‘<img src=”‘. $val->user->profile_image_url .'”><p>’.$val->text.'</p>’,
‘post_status’ => ‘draft’ //下書きで投稿
);

//投稿する。
$post_id = wp_insert_post($my_post);
}
} else {
echo ‘つぶやきはありません。’;
}
?>

みたいな感じのphpファイルをこさえて、Twitter apiの制限に引っかからないように、
一定時間(1時間に1回くらい?)でcronします。
ただ、そのままだと過去のものも毎回投稿してしまうので、
そのあたりは、cronのタイミングをどっかに記録したりして、
最新のものだけに絞る必要がありますね。はい。

ということで、実際にテストしてみたのがこちら。
http://knap.jp/data/test/tweettest_wp/wp/

参考にさせていただいたサイトです。
http://www.webopixel.net/php/818.html

http://nekoriki.net/91

Scroll to top