Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Python twitterとtkinterのことはじめ

5,857 views

Published on

Published in: Technology
  • Be the first to comment

Python twitterとtkinterのことはじめ

  1. 1. Python-Twitter と Tkinter のことはじめ <ul><li>FukPUG Meet-up vol.1 </li></ul><ul><li>2012-01-29 </li></ul>
  2. 2. お前、誰よ? Name : Yukitaka Uchikoshi job : 結婚式場で社内 SE id: uchikoshi22 level : Python 初心者クラス
  3. 3. 今日の目標 <ul><li>簡単なTwitterアプリをPythonで実装 </li></ul><ul><ul><li>pipの導入 </li></ul></ul><ul><ul><li>python-twitterの導入 </li></ul></ul><ul><ul><li>サルでも分かる初歩過ぎるTkinter </li></ul></ul><ul><ul><li>TwitterのタイムラインをTkinterで表示 </li></ul></ul>
  4. 4. python-twitterって何? <ul><li>Twitter の API を扱うためのライブラリ </li></ul><ul><ul><li>タイムラインの取得 </li></ul></ul><ul><ul><li>ツイートの投稿 </li></ul></ul><ul><ul><li>リプライ・リツイートの取得 </li></ul></ul><ul><ul><li>フォロワーリストの取得 </li></ul></ul>
  5. 5. python-twitterを利用する為 <ul><li>最低限必要なライブラリ </li></ul><ul><li>python-twitter </li></ul><ul><li>次の3つが python-twitter と一緒にインストールされます </li></ul><ul><li>simplejson </li></ul><ul><li>oauth2 </li></ul><ul><li>httplib2 </li></ul>
  6. 6. Pythonのパッケージ管理 <ul><li>Pythonパッケージ管理ツール </li></ul><ul><li>pipを使いましょう! </li></ul><ul><li>pipを使う理由 </li></ul><ul><li>パッケージのアンインスールが可能 </li></ul><ul><li>easy_install はアンイストールコマンドがない </li></ul>
  7. 7. pipのインストール方法 <ul><li>easy_install pip </li></ul>
  8. 8. easy_install pip ?
  9. 9. pipをインストールするために easy_installのインストールが必要です (^ ^);
  10. 10. easy_installインストール Windows編
  11. 11. http://pypi.python.org/pypi/setuptools#downloads   Windows にインストールしている Python に合わせて setuptools の exe ファイルをダウンロードして実行すると、(通常) c:python27scripts フォルダの中に easy_install.exe ができます
  12. 12. easy_install インストール Mac/Linux 編
  13. 13. <ul><li>Mac </li></ul><ul><li>Sudo ports install py27_setuptools </li></ul><ul><li>Ubuntu </li></ul><ul><li>sudo apt-get install python-setuptools </li></ul><ul><li>Fedora </li></ul><ul><li>sudo yum install python-setuptools </li></ul>
  14. 14. pip と必要パッケージのインストール Windows 編
  15. 15. Python2.7の例 <ul><li>コマンドプロンプトを立ち上げて以下を実行 </li></ul><ul><li>cd c:python27Scripts </li></ul><ul><li>easy_install.exe pip </li></ul><ul><li>pip install python-twitter </li></ul>
  16. 16. pip と必要パッケージのインストール Mac / Linux 編
  17. 17. Python2.7の例 <ul><li>sudo easy_install pip </li></ul><ul><li>pip install python-twitter </li></ul>
  18. 18. python-twitterの動作確認 <ul><li>sudo easy_install pip </li></ul><ul><li>pip install simplejson </li></ul><ul><li>pip install oauth2 </li></ul><ul><li>pip install python-twitter </li></ul>
  19. 19. python-twitterの動作確認 <ul><li>$ python </li></ul><ul><li>>>> import twitter </li></ul><ul><li>>>> api = twitter.Api() </li></ul><ul><li>>>> tl = api.GetUserTimeLine(id=' uchikoshi22 ') </li></ul><ul><li>>>> for t in tl: print t.text </li></ul>
  20. 20. PythonのGUIツール <ul><li>Tkinter </li></ul><ul><li>wxPython </li></ul><ul><li>Qt </li></ul><ul><li>今回はインストール不要のTkinterを使います </li></ul><ul><li>  ※ Tkinter が付属されていない Python が標準で Linux にインストールされていることがあるので、 apt などでインストールする必要が稀にあります。 </li></ul><ul><li>Titanium Desktop </li></ul><ul><li>今回はインストール不要のTkinterを使います(が) </li></ul><ul><li>  ※ Tkinter が付属されていない Python が標準で Linux にインストールされていることがあるので、 apt などでインストールする必要が稀にあります。 </li></ul>
  21. 21. TkinterでHello World <ul><li>#!/usr/bin/env python </li></ul><ul><li># tk0.py </li></ul><ul><li>from Tkinter import * </li></ul><ul><li>root = Tk() </li></ul><ul><li>Button(root, text=”Hello World”).pack() </li></ul><ul><li>root.mainloop() </li></ul>
  22. 22. Tkinterでタイムライン表示(1) <ul><li>#!/usr/bin/env python </li></ul><ul><li>#-*- coding: utf-8 -*- </li></ul><ul><li># tk1.py </li></ul><ul><li>from Tkinter import * </li></ul><ul><li>Import twitter </li></ul><ul><li>root = Tk() </li></ul><ul><li># ここに次のスライドのコードを入力 </li></ul><ul><li>root.mainloop() </li></ul>
  23. 23. Tkinterでタイムライン表示(2) <ul><li># 追加するコード </li></ul><ul><li>def get_timeline(u): </li></ul><ul><li>api = twitter.Api() </li></ul><ul><li>tls = api.GetUserTimeline(id=u, count=10) </li></ul><ul><li>retunrn tls </li></ul><ul><li># 自分のアカウントを入力してください。 </li></ul><ul><li>tls = get_timeline(' uchikoshi22 ') </li></ul><ul><li>for tl in tls: </li></ul><ul><li>Label = (root, text=t.text).pack() </li></ul>
  24. 24. Tkinterでタイムライン表示(3) <ul><li>#!/usr/bin/env python </li></ul><ul><li>#-*- coding: utf-8 -*- </li></ul><ul><li># tk1.pyの全体 </li></ul><ul><li>from Tkinter import * </li></ul><ul><li>Import twitter </li></ul><ul><li>root = Tk() </li></ul><ul><li>def get_timeline(u): </li></ul><ul><li>api = twitter.Api() </li></ul><ul><li>tls = api.GetUserTimeline(id=u, count=10) </li></ul><ul><li>retunrn tls </li></ul><ul><li>tls = get_timeline(' uchikoshi22 ')   # 自分のアカウントを入力してください </li></ul><ul><li>for tl in tls: </li></ul><ul><li>Label = (root, text=t.text).pack() </li></ul><ul><li>root.mainloop() </li></ul>
  25. 25. python-twitter利用時の注意 <ul><li>TwitterのAPIでBasic認証が使えなくなりました </li></ul><ul><li>https://twitter.com/appsでTwitterのAPIを使うための認証登録が必要です。 </li></ul>
  26. 26.  取得したconsumer keyなどをまとめた下記内容のファイルをアプリケーションと同じディレクトリに保存する <ul><li>#!/usr/bin/env python </li></ul><ul><li># tweetauth.py </li></ul><ul><li>u_id = 'uchikoshi22' </li></ul><ul><li>auth_dict = { </li></ul><ul><li>'consumer_key': 'xxxxxxxxxxxxxxxx', </li></ul><ul><li>'consumer_secret': 'xxxxxxxxxxxxxxxx', </li></ul><ul><li>'access_tokey_key': 'xxxxxxxxxxxxxxxxxx', </li></ul><ul><li>'access_token_secret': 'xxxxxxxxxxxxxxxxxxxxxxx' </li></ul><ul><li>} </li></ul>
  27. 27. 外部ファイル (tweetauth.py) の利用 <ul><li>#!/usr/bin/env python </li></ul><ul><li># -*- coding:utf-8 -*- </li></ul><ul><li># tk3.py </li></ul><ul><li>import tweetauth </li></ul><ul><li># tweetauth.py 内の u_id の値を表示 </li></ul><ul><li>print tweetauth.u_id </li></ul><ul><li># tweetauth 内 auth_dict の consumber_key の値を表示 </li></ul><ul><li>print tweetauth.auth_dict['consumer_key'] </li></ul>
  28. 28. フォローしているツイートを 取得表示する
  29. 29. #!/usr/bin/env python #-*- coding: utf-8 -*- from Tkinter import * import twitter import tweetauth user = tweetauth.u_id t_dict = tweetauth.auth_dict def get_friends_timeline(user, max_timeline): api = twitter.Api( consumer_key = t_dict['consumer_key'], consumer_secret = t_dict['consumer_secret'], access_token_key = t_dict['access_token_key'], access_token_secret = t_dict['access_token_secret'], ) friends_timelines = api.GetFriendsTimeline(user, count=) return friends_timelines f_tls = get_friends_timeline(user, max_timeline) for tl in f_tls: tweet = tl.user.screen_name + &quot; => &quot; + tl.text Label(root, text=tweet).pack() root.mainloop()
  30. 30. Twitter への Post について ハンズオンしてみませんか?
  31. 31. 今回はここまでです ありがとうございました

×