<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>twitter / Drkcore</title><link>http://blog.kzfmix.com/twitter</link><description>Programming, Music, Snowboarding</description><language>ja</language><lastBuildDate>Sun, 22 Jan 2017 16:08:25 +0919</lastBuildDate><item><title>プッシュとプルの問題</title><link>http://blog.kzfmix.com/entry/1485068700</link><description>&lt;p&gt;今の会社は完全にプル型メディアの文化でそれはそれですごくやりづらい。&lt;/p&gt;
&lt;p&gt;というのは周知案件すらもわざわざ全社のお知らせページにアクセスしないといけないという文化だからだ。入社日の人事オリエンテーションの際にも「見逃さないように！」って念を押されたしｗ　周知案件を個人に任せるってどういうことやねんって疑問に思った。&lt;/p&gt;
&lt;p&gt;で、前職は逆にプッシュ型メディア寄り過ぎだったなーと思った。なんでもかんでもメール。周知案件はメールで来るからいいけど、ゴミみたいな情報量もメールで送られてくる。結果、未読が貯まりすぎて重要なメールを見落とすことが多くなりがちな文化だった。マネージメント職は未読の数が多いほど仕事しているって感じだったｗ　1000件未読とか普通にいたなぁ。&lt;/p&gt;
&lt;p&gt;で、そういうのが嫌なスマートな世代はイントラRSSリーダーとかを上手く活用していて、今の会社に移った際に一番最初に入れようとしたのがFastladderなんだけど、今の会社がRSSフレンドリーじゃないので入れてもちょっと使いづらい（イントラRSSとか完備されていないから）&lt;/p&gt;
&lt;p&gt;という感じなので最近ちょっとイントラtwitterクローンとボット群を作っていて、&lt;strong&gt; あー、これってゆるいRSSリーダーだったんだ&lt;/strong&gt;と認識した自分が新鮮だった。&lt;/p&gt;
&lt;p&gt;プッシュとプルってのは対立するもんじゃなくて、ツールを上手く噛ませば効率的な情報共有手段になるのかーと感じたのであった。&lt;/p&gt;</description><pubDate>Sun, 22 Jan 2017 16:08:25 +0919</pubDate><category>twitter</category></item><item><title>googlemapに円を描き入れる</title><link>http://blog.kzfmix.com/entry/1294835628</link><description>&lt;p&gt;入れてみた。ついでに常に地図の中心から5kmの範囲を示すようにした(twitterで地図の中心から5kmの範囲のtweetをサーチしているので)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://gmaptweet.appspot.com/"&gt;富士市民は富士のtweetが気になるお年頃&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最近毎朝アクセスして、昨晩雪が降って道路が凍結してないか確認している。富士と御殿場は天気がかなり違うのでこっちが晴れててもあっちは雪降ってるとかよくある。&lt;/p&gt;
&lt;p&gt;Google Maps APIがなかなか楽しい。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4048684183/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51o8yshh4gL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;Google Maps APIプログラミング入門&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    勝又 雅史&lt;br /&gt;
    アスキー・メディアワークス / 3570円 ( 2010-03-30 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;</description><pubDate>Wed, 12 Jan 2011 21:37:17 +0919</pubDate><category>twitter</category><category>GAE</category><category>googlemap</category></item><item><title>tweetボタン</title><link>http://blog.kzfmix.com/entry/1292362113</link><description>&lt;p&gt;埋め込みテスト&lt;/p&gt;

&lt;p&gt;&lt;a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" data-via="kzfm" data-lang="ja"&gt;Tweet&lt;/a&gt;&lt;script type="text/javascript" src="http://platform.twitter.com/widgets.js"&gt;&lt;/script&gt;&lt;/p&gt;

&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4862484824/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/41DA3oxuJRL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;Twitter社会論 ~新たなリアルタイム・ウェブの潮流 (新書y)&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
津田 大介 &lt;br /&gt;
洋泉社 / ￥ 777 ()&lt;br /&gt;
在庫あり。&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;h4&gt;追記というかTODO&lt;/h4&gt;

&lt;p&gt;urlのパラメータを渡すようにする必要があるのと、違うドメインだとinvalidされるっぽい(テスト環境だとinvalid URL)&lt;/p&gt;
</description><pubDate>Wed, 15 Dec 2010 06:34:11 +0919</pubDate><category>life</category><category>twitter</category></item><item><title>Twitter Streaming APIをtweepyでGrowlに通知する</title><link>http://blog.kzfmix.com/entry/1277468178</link><description>&lt;p&gt;勉強会とかでオフィシャルハッシュタグがある場合に、「タグ付きのtweetがプレゼンしているスクリーンに出ればいいのに」と思ったりしたことはありませんか？&lt;/p&gt;

&lt;p&gt;僕はあります。&lt;/p&gt;

&lt;p&gt;なので、引数に任意の文字列を渡すとフィルタリングした結果をGrowlに通知するようなものを作ってみた。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ python tw_stream.py "#worldcup"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;img src="http://www.kzfmix.com/images/blog/tw_growl.png" alt="twitter growl" /&gt;&lt;/p&gt;

&lt;p&gt;参考にしたのは以下のサイト&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://d.hatena.ne.jp/nishiohirokazu/20080318/1205833455"&gt;PythonでGrowlを叩く&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/joshthecoder/tweepy-examples"&gt;joshthecoder / tweepy-examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ptone.com/dablog/2009/02/twitter-to-growl-agent-in-python/"&gt;Twitter to Growl Agent in Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://taichino.com/programming/1449"&gt;pythonでtwitterのStreaming APIを使ってみた&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;コード&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import sys,os
import tweepy
import Growl
import simplejson
import urllib2
import hashlib
from pit import Pit

class StreamListener(tweepy.StreamListener):
    def __init__(self):
        self.g = Growl.GrowlNotifier(applicationName='TwitterWatcher', notifications=['Watch'])
        self.g.register()
        self.image_dir = os.path.join(os.path.expanduser('~'),".tw_growl")

        if not os.path.exists(self.image_dir):
            os.makedirs(self.image_dir)

    def get_icon(self,url):
        fname = "%s.%s" % (hashlib.md5(url).hexdigest(),url.split('.')[-1])
        cached_image = os.path.join(self.image_dir,fname)
        image = None
        if os.path.exists(cached_image):
            image = Growl.Image.imageFromPath(cached_image)
        else:
            f = open(cached_image,'wb')
            f.write(urllib2.urlopen(url).read())
            f.close()
            image = Growl.Image.imageFromPath(cached_image)
        return image

    def on_data(self, data):
        data = simplejson.loads(data)
        image = self.get_icon(data['user']['profile_image_url'])
        self.g.notify(
            noteType='Watch', 
            title=data['user']['screen_name'], 
            description=data['text'], 
            icon=image,
            #description=image,
            sticky=False)

def main():
    conf   = Pit.get('twitter.com')
    user   = conf['username']
    passwd = conf['password']

    stream = tweepy.Stream(user, passwd, StreamListener())
    stream.filter(track=[sys.argv[1]])

if __name__ == "__main__":
    try:
        main()
    except KeyboardInterrupt:
        print '\nGoodbye!'
&lt;/code&gt;&lt;/pre&gt;
</description><pubDate>Fri, 25 Jun 2010 21:26:30 +0919</pubDate><category>Python</category><category>twitter</category></item><item><title>twitteRを使ってみた</title><link>http://blog.kzfmix.com/entry/1276946509</link><description>&lt;p&gt;Rのtwitterクライアントである&lt;a href="http://cran.r-project.org/web/packages/twitteR/index.html"&gt;twitteR&lt;/a&gt;を使ってみた。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;library(twitteR)
sess &amp;lt;- initSession(user,password)
friendsTimeline(session=sess) # タイムライン表示
tweet("rtest", session=sess) # tweet
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://twitter.com/kzfm/status/16537902006"&gt;お手軽&lt;/a&gt;感は高い。&lt;/p&gt;

&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4431712186/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/41EM2PZMTYL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;Rの基礎とプログラミング技法&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
U.リゲス &lt;br /&gt;
シュプリンガー・ジャパン(株) / ￥ 3,675 ()&lt;br /&gt;
在庫あり。&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;
</description><pubDate>Sat, 19 Jun 2010 20:22:43 +0919</pubDate><category>R</category><category>twitter</category></item><item><title>twitterのつぶやきをイントラtwitterに</title><link>http://blog.kzfmix.com/entry/1276080266</link><description>&lt;p&gt;あらすじ&lt;/p&gt;

&lt;p&gt;2010年春、&lt;a href="http://sites.google.com/site/shovelx/"&gt;しゃべる&lt;/a&gt;を職場に入れてみたところ、ちょっと後ろ向きな発言をする人たちに人気が出てしまい、ネガな雰囲気のただよう&lt;a href="http://twitter.com/kzfm/status/15741135451"&gt;ブラックマイクロブログ&lt;/a&gt;になりかけていた。&lt;/p&gt;

&lt;p&gt;これじゃいかんということで、ポジな発言を紛れ込ませることにしたのであった。&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;しゃべるのAPIはtwitter互換なので&lt;a href="http://code.google.com/p/python-twitter/"&gt;python-twitter&lt;/a&gt;のハードコードされているurlをしゃべるのそれに変えてやればpythonモジュールがあっという間に出来上がり。ついでにshovel.pyってすればimport shovelで呼べる。&lt;/p&gt;

&lt;p&gt;あとはfeedparserでtwitterのポジティブフィードを解析して、一日一回くらいイントラtwitterに注入すればいいわけだ。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import feedparser
import re,os
shuzo_tweet = re.compile("^(shuzo_matsuoka:\ @[^\ ]+ |shuzo_matsuoka:\ )")
d = feedparser.parse("http://twitter.com/statuses/user_timeline/63097969.rss")
stweet = [shuzo_tweet.sub('',e['title']) for e in d['entries']]

import shovel
api = shovel.Api(username='xxx', password='xxx')
users = api.GetFollowers()
followers = [u.screen_name for u in users]

for u,m in zip(followers,stweet):
    message = "@%s %s" % (u,m)
    api.PostUpdate(message)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;これで、とりあえずフォロワーに熱いメッセージが送られるようになったが、そのうちちゃんとしたボットを作りたい。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;おい、そこのお前！ただ漫然と合成するだけじゃテクニシャンと変わんないぞ！&lt;/li&gt;
&lt;li&gt;信頼区間がわからなくて、部下の信頼勝ち取れると思ってんのか！このすっとこどっこい&lt;/li&gt;
&lt;li&gt;合成数は残業でカバーするもんじゃないぞ、効率だ！こ　う　り　つ！&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;とか前向きなreplyするやつ（謎）。&lt;/p&gt;
</description><pubDate>Wed, 09 Jun 2010 19:53:03 +0919</pubDate><category>Python</category><category>twitter</category></item><item><title>Pythonでtwitpicに写真を投稿する</title><link>http://blog.kzfmix.com/entry/1274959136</link><description>&lt;p&gt;&lt;a href="http://code.google.com/p/python-twitpic/"&gt;python-twitpic&lt;/a&gt;というものがあった。twitpicはデイレクトリになってて__init__.pyとかあるけど、直接twitpic.pyをimportする方向で。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#!/Usr/bin/env python
# -*- encoding:utf-8 -*-

import twitpic
twit = twitpic.TwitPicAPI('xxxx', 'xxxx')
twitpic_url = twit.upload('twitter.png', message='test from python', post_to_twitter=True)
print twitpic_url
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;数行で画像投稿しつつtwitterにもpostできる。&lt;/p&gt;
</description><pubDate>Thu, 27 May 2010 20:22:35 +0919</pubDate><category>Python</category><category>twitter</category></item><item><title>tweepyでOAuthを試してみた</title><link>http://blog.kzfmix.com/entry/1266577646</link><description>&lt;p&gt;PythonでOAuthを試したかったので&lt;a href="http://joshthecoder.github.com/tweepy/"&gt;tweepy&lt;/a&gt;を使ってみた。&lt;/p&gt;
&lt;p&gt;easy_installじゃなくてgitから&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;git clone git://github.com/joshthecoder/tweepy.git
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;まずはBasic認証&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tweepy&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;auth&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tweepy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BasicAuthHandler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;password&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;api&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tweepy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;API&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;auth&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;api&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;update_status&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;hello from tweepy(Basic)&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;tweepy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;models&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Status&lt;/span&gt; &lt;span class="nb"&gt;object&lt;/span&gt; &lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="mh"&gt;0x13c8db0&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;&lt;a href="http://twitter.com/kzfm/status/9330123865"&gt;http://twitter.com/kzfm/status/9330123865&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;続いてOAuth。consumer_token,consumer_secretはあらかじめ&lt;a href="http://twitter.com/apps"&gt;twitter&lt;/a&gt;から取得しておく。&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;tweepy&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;consumer_token&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;xxxxxxxxxxxxxx&amp;quot;&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;consumer_secret&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;xxxxxxxxxxxxxxxx&amp;quot;&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;auth&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tweepy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;OAuthHandler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;consumer_token&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;consumer_secret&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;redirect_url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;auth&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_authorization_url&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;redirect_url&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;redirect_urlのURLにブラウザでアクセスして許可すると7桁の数字が表示されるのでそれを入力&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;verifier&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;1234567&amp;#39;&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;auth&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_access_token&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;verifier&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;tweepy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;oauth&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;OAuthToken&lt;/span&gt; &lt;span class="nb"&gt;object&lt;/span&gt; &lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="mh"&gt;0x1393510&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;auth&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;access_token&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;secret&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;auth&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;access_token&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;secret&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;auth&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tweepy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;OAuthHandler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;consumer_token&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;consumer_secret&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;auth&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set_access_token&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;secret&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;oauthapi&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tweepy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;API&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;auth&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;oauthapi&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;update_status&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;hello from tweepy(OAuth)&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;tweepy&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;models&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Status&lt;/span&gt; &lt;span class="nb"&gt;object&lt;/span&gt; &lt;span class="n"&gt;at&lt;/span&gt; &lt;span class="mh"&gt;0x1397b50&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;&lt;a href="http://twitter.com/kzfm/status/9330367673"&gt;http://twitter.com/kzfm/status/9330367673&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://pypi.python.org/pypi/wsgioauth"&gt;wsgioauth&lt;/a&gt;もいいかもとか思い始めたでござる。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4048686291/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51wSTTIQtgL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;エキスパートPythonプログラミング&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Tarek Ziade&lt;br /&gt;
    アスキー・メディアワークス / 3780円 ( 2010-05-28 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;</description><pubDate>Fri, 19 Feb 2010 20:42:20 +0919</pubDate><category>Python</category><category>twitter</category><category>OAuth</category></item><item><title>twitterでフォローされているか調べるスクリプト</title><link>http://blog.kzfmix.com/entry/1259147587</link><description>&lt;p&gt;ダイレクトメッセージを送れるかどうかで判断するみたいなつぶやきが流れてたので。&lt;/p&gt;

&lt;p&gt;setでごにょれば良かろうと。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import twitter
api = twitter.Api(username='user',password='pass')
friends = set([u.name for u in api.GetFriends()])
followers = set([u.name for u in api.GetFollowers()])

print "follow and followed: "     + ",".join(list(friends.intersection(followers)))
print "not follow but followed: " + ",".join(list(followers.difference(friends)))
print "follow but not followed: " + ",".join(list(friends.difference(followers)))
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4797353953/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/41eXQ%2B8Rh2L._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;みんなのPython 改訂版&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
柴田 淳 &lt;br /&gt;
ソフトバンククリエイティブ / ￥ 2,940 ()&lt;br /&gt;
在庫あり。&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;
</description><pubDate>Wed, 25 Nov 2009 20:17:53 +0919</pubDate><category>Python</category><category>twitter</category></item><item><title>横着おはありスクリプト</title><link>http://blog.kzfmix.com/entry/1258940941</link><description>&lt;p&gt;&lt;strong&gt;おは(ようを)あり(がとう)&lt;/strong&gt;ではなくて
&lt;strong&gt;おは(が)あり（ました）&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;つまり&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;isOha? :: Str -&amp;gt; Bool
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;なスクリプト。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#!/usr/bin/env python
# -*- encoding:utf-8 -*-

import twitter
api = twitter.Api(username='user',password='pass')
oha = [r.user.screen_name for r in api.GetReplies() \
if r.text.encode('utf-8').find('おは') &amp;gt; -1]
thx = "@" + " @".join(oha) + "おはありです"
status = api.PostUpdate(thx.decode('utf-8'))
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://pypi.python.org/pypi/twitter/"&gt;pypiにあるtwitter&lt;/a&gt;じゃなくて&lt;a href="http://code.google.com/p/python-twitter/"&gt;python-twitter&lt;/a&gt;を使いたかったので、既にインストールされてた&lt;a href="http://pypi.python.org/pypi/twitter/"&gt;twitterモジュール&lt;/a&gt;は&lt;a href="http://d.hatena.ne.jp/kokiya/20080920/1221931695"&gt;pythonモジュールのアンインストール - kokiyaの日記&lt;/a&gt;を参考に消した。&lt;/p&gt;
</description><pubDate>Mon, 23 Nov 2009 10:56:47 +0919</pubDate><category>Python</category><category>twitter</category></item></channel></rss>