TopTwitter > 2013年3月
2013年3月 6日

TwitterのAPI 1.1で取得したユーザーのJSONデータからAtomフィードを作成する

March 6,2013 12:55 AM
Tag:[, ]
Permalink

Twitter API 1.1で取得した、任意のユーザーのタイムライン(JSONデータ)からAtomフィードを作成する方法を紹介します。

Twitter API 1.1で取得したJSONをAtomに変換したサンプル
Atomフィード

1.Twitterアプリケーションの作成

Twitterアプリケーション開発のページを開き、Twitterのアカウントでサインイン。

サインイン

右上にある「Create a new application」をクリック。

Create a new application

「Application Details」のName、Description、Websiteを設定。Callback URLの設定は不要です。

Application Details

下の方にある「Yes, I agree」をチェックし、CAPTHCAを入力して「Create your Twitter application」をクリック。

Create your Twitter application

次の画面の下にある「Create my access token」をクリック。

Create my access token

これで設定完了です。赤枠で示した

  • Consumer key
  • Consumer secret
  • Access token
  • Access token secret

を後の作業で利用します。

設定完了

2.PHP認証ライブラリのダウンロード

githubの「twitteroauth」の「ZIP」をクリックしてアーカイブをダウンロード。

twitteroauth

アーカイブを展開して、中にある、

  • twitteroauth/OAuth.php
  • twitteroauth/twitteroauth.php

を利用します(twitteroauthフォルダをそのまま使います)。

3.JSON→Atom変換スクリプト

twitteroauthフォルダに、下記の内容をコピーして任意のPHPファイル名で配置してください。$nameにユーザー名(他人でもOK)、$consumerKey、$consumerSecret、$accessToken、$accessTokenSecretに先程作成したアプリケーションの赤枠部分の内容を設定します。

<?php
require_once("twitteroauth/twitteroauth.php");
 
$name = '名前';
$filename = $name . "_atom.xml";
 
$consumerKey = "xxxxxxxxxxxxxxxxxxxxxx";
$consumerSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$accessToken = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$accessTokenSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
 
$connection = new TwitterOAuth($consumerKey,$consumerSecret,$accessToken,$accessTokenSecret);
$request = $connection->OAuthRequest('https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=' . $name, "GET", array("count"=>"10"));
$results = json_decode($request);
 
//var_dump($results);
 
if (isset($results)) {
    $file = fopen($filename, 'w');
    fwrite($file, '<?xml version="1.0" encoding="utf-8"?>' . "\n" . '<feed xmlns="http://www.w3.org/2005/Atom">' . "\n");
    fwrite($file, '<title>' . $name . "のフィード</title>\n");
    fwrite($file, '<link rel="alternate" type="text/html" href="' . 'https://twitter.com/' . $name . '" />' . "\n");
    fwrite($file, '<id>tag:' . $name . "</id>\n");
    fwrite($file, '<updated>');
    foreach ($results as $key => $val) {
        fwrite($file, date('Y-m-d H:i:s', strtotime($results[$key]->created_at)));
        break;
    }
    fwrite($file, "</updated>\n");
    foreach ($results as $key => $val) {
        fwrite($file, "<entry>\n<title>" . $results[$key]->text . "</title>\n");
        fwrite($file, '<link rel="alternate" type="text/html" href="' . 'https://twitter.com/' . $name . '/status/' . $results[$key]->id_str . '"/>' . "\n");
        fwrite($file, '<id>tag:' . $results[$key]->id_str . "</id>\n");
        fwrite($file, '<published>' . date('Y-m-d H:i:s', strtotime($results[$key]->created_at)) . "</published>\n");
        fwrite($file, "<author>\n<name>" . $name . "</name>\n</author>\n" . '<content type="html">');
        fwrite($file, $results[$key]->text);
        fwrite($file, "</content>\n</entry>\n");
    }
    fwrite($file, '</feed>');
    fclose($file);
}

このファイルをcronなどで起動するか、ブラウザから実行すれば、「ユーザー_atom.xml」というAtomファイルを同じディレクトリに出力します。

出力したAtomファイルの使い方はお任せします。

Comments [0] | Trackbacks [1]
Now loading...
Recent Entries
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2021年
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3