Subcribe via RSS

[PHP] twitterのRSSからreplyを取り除く

2012/1/8 | Posted in php, twitter

twitterのRSSを自分のウェブページに表示していたのですが、そのままだとつぶやきもリプライ(mention?)もすべて表示されてしまいます。

なので、正規表現でリプライだけ取り除いて表示するようにしました。
RTはそのまま表示してます。

require_once 'lib/rss_fetch.inc';

$twit_feed = 'http://twitter.com/statuses/user_timeline/********.rss';
$twit_rss = fetch_rss($twit_feed);

$max = 20;
$cnt = 0;

echo "<ul>";
foreach($twit_rss->items as $item){
  $cnt++;
  if($cnt > $max)break;
  $title = htmlspecialchars($item['title']);
  if(preg_match("/^tjun: @/", $title))continue;
  $url = htmlspecialchars($item['link']);
  echo "  <li><a href=\"$url\">$title</a></li>\n";
}
echo "</ul>";

リプライを取り除くのは以下の部分です。
  if(preg_match("/^tjun: @/", $title))continue;
tjunは、自分のtwitterのユーザ名です。先頭が “ユーザ名: @” であれば、リプライと判定してます。


久しぶりにPHP書きました。
一応正しく動いているように見えますが、何か間違ってるかもしれません。




Tags: ,

PHPで2-legged OAuth( GDD Devquiz )

2010/8/26 | Posted in Diary, programming, web

Google Developer Day 2010 は、参加するためにDevquizっていう問題がいくつか出て、それを解いた点数の高い人から参加できるっていう仕組みなのです。

いくつか問題があって、

・簡単なgoogleのサービスに関する問題

・html5の文法間違い探し

・2-legged OAuthをやる

・Google Map APIを使ってTSP

・しりとりで相手に勝つ

・PACMAN

なんかがあったような気がします。

それぞれ

  • 簡単なgoogleのサービスに関する問題
  • 普通にググって考える。

  • html5の文法間違い探し
  • 自分で見ても間違いが分からなかったからHTML5の文法チェックツールが早くも登場 ? Publickey を使った。

  • 2-legged OAuth
  • ググって近いプログラムを見つけて、それを元にプログラム書いた(後述)。
    しかし、OAuthの仕様について 〜署名?それっておいしいの?〜 (Yahoo! JAPAN Tech Blog) の最後にある確認ツールを使えば簡単にできるらしい。

  • Google Map API
  • javascript書いてレベル2まで普通に解けたのに、レベル3でうまく行かず、面倒だったのでやめた。

  • しりとり
  • 辞書の解析だけプログラムでやって、手動で解いた。レベル3は何度か負けたけど、相手の戦術を逆に使う方法を考えてできた。

  • PACMAN
  • 時間がなくてやってない。

これじゃ合格点に行かないような気もする。


以下はPHPで2-legged OAuth。
PHPを選んだ理由は、書ける言語の中で一番最初に、よさそうな参照できるコードが見つかったから。

指定されたのは、CONSUMER KEY、 CONSUMER SECRET、POSTするメッセージボディ、realmとターゲットURLで、あとHMAC_SHA1を使うことも指定されたような。



<?php
require_once 'OAuth.php';
define('CONSUMER_KEY', 'your consumer key');
define('CONSUMER_SECRET', ''your consumer secret);

function OAuthConsumerRequest($method, $url, $data=NULL) {
    $consumer = new OAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
    $signature_method = new OAuthSignatureMethod_HMAC_SHA1();

    //与えられたメッセージボディ
    $params = array("hello" => "world");
    // access protected resources
    $oauth_request = OAuthRequest::from_consumer_and_token($consumer,
                                       NULL,
                                       $method,
                                       $url,
                                       $params);

    $oauth_request->sign_request($signature_method,
                                 $consumer, '');

//与えられたrealmはここで使う
    $headers = $oauth_request->to_header('devquiz');
    $prequest = "hello=world";

    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array($headers));
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $prequest);
    curl_setopt($curl, CURLOPT_POST, TRUE);

    $result = curl_exec($curl);
      if ($result === FALSE) {
         return curl_error($curl);
    }
    curl_close($curl);
    return $result;
}

//与えられたURLはここで使う
$ret = OAuthconsumerRequest('POST', 'target url';);
print($ret);
?>

を参考にしました。




Tags: ,

.htaccessでのBasic認証のユーザ名をphpで取得

2008/10/31 | Posted in programming

phpでのBasic認証ではなく,.htaccessを用いたBasic認証をした際のユーザ名は,phpを用いると

$_SERVER['REMOTE_USER']
で取得できます.
phpでのBasic認証の場合は,
$_SERVER['PHP_AUTH_USER']
です.




Tags:
  • 書いてる人:

    Junichiro Takagi
    高木潤一郎

    http://tjun.jp
    mail@tjun.jp

    未踏でクリエータやってました。メーカーでエンジニアやってます。
    このブログは、会社とは関係なく個人の意見を書いています。

    RSS:


  • friendfeed: