News.Azwad.Com - toshi's tumblr

Follow @toshi0104
Mar 06 2013

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

10 notes

  1. cr96 reblogged this from darylfranz
  2. overtechnology reblogged this from darylfranz
  3. harabiwa reblogged this from darylfranz
  4. athsear reblogged this from darylfranz
  5. toshi0104 reblogged this from darylfranz
  6. ase-hujiko reblogged this from darylfranz
  7. darylfranz posted this
Page 1 of 1