Python twitterとtkinterのことはじめ

5,296 views

Published on

Published in: Technology
0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,296
On SlideShare
0
From Embeds
0
Number of Embeds
293
Actions
Shares
0
Downloads
0
Comments
0
Likes
9
Embeds 0
No embeds

No notes for slide

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. 今回はここまでです ありがとうございました

×