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: ,

Rubyでtwitter, facebook, instagramなどの認証

2011/6/4 | Posted in ruby, twitter

最近のソーシャルなサービスをアプリケーションと連携するには、Oauthで認証する必要があります。
これを自分で全部やるのは結構大変なので、ライブラリを使います。

RubyでOauthを使う場合、Omniauthというライブラリが便利です。
更新がこまめにされていて、対応できるサービスもtwitterをはじめgithubやlinkedinなどたくさんあり、instagramなどの新しいサービスにも対応できます。

使い方を紹介するのがちょっと大変なので、参考になりそうなサイトのリンクを貼っておきます。




Tags: , ,

follow meバッジをブログにつけた

2009/10/1 | Posted in twitter, web

右についてるやつね.

Twitter “Follow” Badge for your site / blog

で,アカウント名いれて,「follow me」にして,色決めて,上からの位置決めて,update codeすると,javascriptのコードが出るので,それをコピーしてブログやサイトのbodyタグ内にいれるとできると思います.

follow me
IE6じゃ見られないらしい.




Tags:

rubyからtwitter APIを利用してbotを作る

2009/9/10 | Posted in ruby, twitter

rubyからtwitter APIをたたくbotを作ります。

今回は、

「受け取ったダイレクトメッセージを、そのままpostするbot」

を作ります。

以前はtwitter4Rというgemを使っていたけど、それが正しく動かなくなったので、

Ruby Twitter Gem by John Nunemaker

を使います。

ドキュメントは

rdoc.info :: twitter

に詳しいです。

で、ソースコード。

require 'rubygems'
require 'twitter'

#twitter conf
username = ''
password = ''
httpauth = Twitter::HTTPAuth.new(username, password)
client = Twitter::Base.new(httpauth)

client.direct_messages.each{ |msg|
  post_msg = msg.text.strip
  client.update(post_msg)
  client.direct_message_destroy(msg.id)
}

これをcronで毎分動かしてやります.
以上です。今のところ正しく動いています。

— 2010/07/10 追記 —
この記事は古いですが、今ならOauthの認証を使うべきです。

この記事なんかが参考になります。




Tags: ,

twitterのダイレクトメッセージを受信するプログラムをrubyで

2009/1/15 | Posted in ruby, twitter

この記事は古いので、プログラムが使えない可能性が高いです。
今ならrubygemのtwitterライブラリを使うのがよいと思います。Oauthも必要です。



こないだ,twitterにくだらないギャグをpostするプログラムを書いたので,今度は他の人からの投稿を受け付けて,ギャグリストに追加するプログラムを書きました.



これで誰でも思いついたくだらないギャグをsubetterに言わせることができます.

進化したsubetter

ついでに,ギャグをテキストファイルに保存するのはなんかかっこ悪いので,MySQLにも入れることにしました.いずれMySQLに完全に移行したいですが,まだ両方やってます.

まだいくつか問題があって,MySQLにそのままじゃ入れられない文字の処理とか,全然よく分かってないのでその辺から修正しなきゃと思っています.

プログラムはこんな感じ.

require('rubygems')
gem('twitter4r','0.3.0')
require('twitter')
require "mysql"

flag = 0
msg = nil

my = Mysql::new("localhost", "user", "passwd", "db_name")

client =Twitter::Client.new(:login => 'subetter',:password => 'passwd')

client.messages(:received).each do |msg|
#メッセージのテキストを取得,改行文字を省く
joke = msg.text
joke = joke.strip

#メッセージの送り主を取得
user_name = msg.sender.screen_name

que = "SELECT * FROM jokes WHERE joke='" + joke + "'"
res = my.query(que)
res.each do |row|
flag = 1
end
#p flag

if flag == 0
sql = "INSERT INTO jokes VALUES ('','" + user_name + "','" + joke + "')"
#mysqlにギャグを登録
my.query(sql)
#テキストファイルにもギャグを登録
file = open("/home/jun/Dropbox/cyg/work/ruby/twitter/jokes.txt", 'a')
file.puts joke
file.close
else
flag = 0
end
end

exit




Tags: ,
  • 書いてる人:

    Junichiro Takagi
    高木潤一郎

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

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

    RSS:


  • friendfeed: