2013年6月9日日曜日

[Python]Flickr API

インストール
  1. Scripts/easy_install.exe を使って flickrapi module をインストールする
    > cd Python25/Scripts
    > easy_install.exe flickrapi
    Reading http://pypi.python.org/simple/flickrapi/
    Reading http://flickrapi.sf.net/
    Reading http://stuvel.eu/projects/flickrapi
    Best match: flickrapi 1.4.2
    Downloading http://pypi.python.org/packages/2.5/f/flickrapi/flickrapi-1.4.2-py2.5.egg#md5=d2312c2ee10b838afe7d607b51b969d6
    Processing flickrapi-1.4.2-py2.5.egg
    Moving flickrapi-1.4.2-py2.5.egg to python25\lib\site-packages
    Adding flickrapi 1.4.2 to easy-install.pth file
    Installed python25\lib\site-packages\flickrapi-1.4.2-py2.5.egg
    Processing dependencies for flickrapi
    Finished processing dependencies for flickrapi
  2. Sign in to Yahoo! から API Key と Secret code を入手する
  3. 自分のページから Tag を指定して検索する
    自分のユーザー ID は Flickr の photostream を開いた時に URL に表示される。
    http://www.flickr.com/photos/************/
    の *** の部分


Search
# -*- coding: utf-8 -*-
# Flickr API テストスクリプト (Search)
import flickrapi

api_key = '入手した API key'
flickr = flickrapi.FlickrAPI(api_key)
my_user_id = '自分のユーザー ID'
search_tags = '検索する Tag'

for photo in flickr.walk(user_id=my_user_id, tags=search_tags):
    print "title: ", photo.get('title')
    print "id: ", photo.get('id')
    print "secret: ", photo.get('secret')
    print "URL: http://www.flickr.com/photos/%s/%s/" % (my_user_id, photo.get('id'))
取得できる結果のパラメータ (photo.get() に渡している引数) は Flickr Services: Flickr API: flickr.photos.search の Example Response 参照

Upload
スクリプトを実行すると Upload を許可しても良いかの確認画面が表示される
# -*- coding: utf-8 -*-
# Flickr API テストスクリプト (Upload)
import flickrapi

api_key = '入手した API Key'
api_secret = '入手した API secret code'
flickr = flickrapi.FlickrAPI(api_key, api_secret)

# Web ブラウザに Flickr 画面が表示され、このスクリプトから upload をしても良いか許可を求められる
(token, frob) = flickr.get_token_part_one(perms='write')
if not token: raw_input("Press ENTER after you authorized this program")
flickr.get_token_part_two((token, frob))
u_filename = 'test.jpg'
u_title = 'test'
flickr.upload(filename=u_filename, title=u_title)

0 件のコメント:

コメントを投稿