TopサービスTwitter > TwitterのAPI 1.1で取得したユーザーのJSONデータからAtomフィードを作成する
2013年3月 6日

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

Posted at March 6,2013 12:55 AM
Category:[Twitter]
Tag:[, ]

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ファイルの使い方はお任せします。

Posted by yujiro   このページの先頭に戻る
likebox
関連記事
人気エントリー
トラックバックURL


トラックバック

PHPでつぶやきを検索してRSSフィードを作成する [Twitter API 1.1 対応] from nekoprojectブログ
twitterでおなじみハッシュタグ。内輪向けやメモ用として愛用しているのですが、つぶやきを記録するためにIFTTTを使ってEvernoteに保存していま... [続きを読む]

Tracked on June 14, 2013 10:35 AM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字 イタリック アンダーライン ハイパーリンク 引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)

Now loading...
Entry Trackbacks
Entries of this Category
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

Categories
Monthly Archives
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 5.12