Facebookページから情報を取得してWordPressに投稿する2013/9/26

ユレッジでは、もしゆれというJ-SHISが提供するスマホアプリのFacebookページから防災トピックスの情報提供を受けています。

もしゆれ Facebookページ

これただ、最新の20件だけを取得して表示するようにしていたのですが、勿体ないなあと思って、アーカイブするようにしました。基本的にはFacebookページから取得した情報を、WordPressに記事として投稿するということですね。

require_once("../../../wp-config.php");
require 'fb_image/facebook.php';
require 'fb_image/config.php';

FacebookのPHP SDK使ってます。

PHP SDK

$number = fopen('/count.txt, 'r');
$currentnumber = fgets($number);
fclose($number);
try {
  $pages = $facebook->api('/facebookpage/feed?since='.$currentnumber,'GET', array('limit' => 20));
} catch (FacebookApiException $e) {
  error_log($e);
}

テキストファイルに最終の投稿のIDを保存しておいて、それ開いてそれ以降の投稿を取って来ます。

$cnt = 0;
  foreach ($pages['data'] as $page) {
    if($cnt == 0) {
      $sinceid = $page['id'];
    }
    $id = $page['id'];
    $message = $page['message'];
    $pos = stripos($message, 'http://');
    if (!($pos === false)) {
      $message = substr($message, 0, $pos);
    }
    $pos = stripos($message, 'https://');
    if (!($pos === false)) {
      $message = substr($message, 0, $pos);
    }
    if(mb_strlen($message) > 200) {
      $message = mb_strimwidth($message,0,200,"…", 'utf8');
    }
    $url = $page['link'];
    if(empty($url)) {
      $url = "https://www.facebook.com/facebookpage";
    }
    $time = $page['created_time'];
    $time = strtotime($time);
    $time = date('Y-m-d H:i:s', $time);

    $my_post = array();
    $my_post['post_title'] = $message;
    $my_post['post_status'] = 'publish';
    $my_post['post_author'] = 1;
    $my_post['post_date'] = $time;
    $my_post['post_category'] = array(1);

    if(!empty($time)) {
    $id = wp_insert_post($my_post);
    add_post_meta($id, 'url' , $url, true);
    }
    $cnt++;
}

取得した情報を自分の欲しいように整形して、それを記事のタイトルとして保存、シェアされているリンク先はカスタムフィールドに突っ込んで、後はテーマ側で、記事のタイトルにリンク貼って、このphpをCronで回せば、Facebookページでシェアされたリンクとコメントが特定のカテゴリに溜まっていくので。

if(!empty($sinceid)){
$number = fopen('count.txt', 'w');
$status = fwrite($number, $sinceid);
fclose($number);
}

で最後に最新の投稿IDを保存しておきます。こんな感じでユレッジには防災トピックスがアーカイブされるようになりました。

防災トピックス – ユレッジ : 日本の「揺れやすさ」と地震防災を考えるサイト

これ元々、僕のTwitterアカウントのログを保管するブログでXMLRPCでやっていたのを、WordPress内部でやるようにして、Facebookページから情報を取得してWebサイトに表示するスクリプトと組み合わせたものです。

kosuk.hourly

まあ色々実験しておくと、たまに使いどころ出てくるものです。今回はテキストとリンクだけですが、シェアされた写真のURL取得してアイキャッチ画像に突っ込むとか色々できます。多分。

ひとり仕事: フリーランスという働き方
(2012-10-5)
売り上げランキング: 14,705
100円
本格ビジネスサイトを作りながら学ぶ WordPressの教科書
プライム・ストラテジー株式会社
ソフトバンククリエイティブ
売り上げランキング: 5,208
WordPressプロフェッショナル養成読本 [Webサイト運用の現場で役立つ知識が満載! ] (Software Design plus)
高野直子 後藤賢司 染谷昌利 岡本雄樹 深海寛信 岡本 渉 松本悦宜
技術評論社
売り上げランキング: 24,886
いちばんやさしい WordPress の教本 人気講師が教える本格Webサイトの作り方
石川栄和 大串肇 星野邦敏
インプレスジャパン
売り上げランキング: 2,127

今、読まれている記事

    まだデータがありません。