Using Flickr API with phpFlickr

本來我的私人照片都是放到自己架的網站上面的,一直在考慮要不要改放到 Flickr 上面…
最重要的一個考量因素就是與我自己的網站程式容不容易整合

雖然利用 Yahoo 送的免費三個月 Flickr Pro 帳號已經把幾年來、數十本相簿統統丟上去備份了,但一直沒有時間去實驗一下 Flickr API 到底合不合我用

拖了一陣子,結果免費三個月的 Flickr Pro 帳號在今天終於到期了,而且 Flickr Gift 買一年送三個月(備註)的活動也即將在一月底結束了,因此今天還是花了點時間評估了一下 Flickr API,結果還蠻滿意的,這幾天應該就會刷卡買了吧

我用的是 phpFlickr 這套程式庫,使用起來還蠻容易的,所有 Flickr 提供的 API 都有支援,而我要的其實只是列出所有相簿(sets)列表而已。唯一有點可惜的是,Flickr API 還沒有支援珍藏集 (collections),目前僅能到相簿(sets)這個層次而已,但這不是 phpFlickr 的問題

使用 phpFlickr 前,要先去生一個 Flickr API Key 出來,然後就可以用這個 Key 來連接 Flickr API 了

要用 phpFlickr 程式去使用 Flickr API 需要認證,有兩種模式:

1. 每次都去認證使用者的帳號,phpFlickr 會把你導到 Flickr 的認證頁面再導回來

先把 API Key 的 callback 指到 phpFlickr/auth.php,然後程式呼叫 auth() 後再作想作的事

1
2
3
4
5
6
7
8
9
10
11
12
<?
 
include('phpFlickr/phpFlickr.php');
 
$f = new phpFlickr("[API Key]","[Auth Secret]");    //  填入 API Key 及 Secret
$f->auth();
 
// 作自己的事
 
print_r( $f->photosets_getList() );
 
?>

呼叫 auth() 會把使用者瀏覽器導到 Flickr 的認證網頁,而程式本身會結束執行:

Flickr API authentication

認證網頁可以讓使用者授權讓你的服務去存取使用者的 Flickr 帳號,不一定是上面產生 API key 的那個帳號。當認證完畢後,Flickr 會再把使用者瀏覽器導回之前設定的 callback (phpFlickr/auth.php),然後再導回你原本呼叫 auth() 的那隻程式

再導回這個程式時,會有相關認證資訊 (authentication token) 放在 session data 中,這時呼叫 auth() 就不再會把使用者導到其他網頁了,而是會回傳認證的權限狀況,接下來程式就可以作自己的事了

使用者隨時可以經由 這個網頁 來取消對你的程式的授權:

Flickr extended authentication

2. 每次都是用固定的帳號去認證,不會導到 Flickr 認證頁面

要使用這種作法,請參考 http://www.phpflickr.com/tools/auth/ 去產生一個永久的 token,接下來程式就可以直接使用了:

1
2
3
4
5
6
7
8
9
10
11
12
<?
 
include('phpFlickr/phpFlickr.php');
 
$f = new phpFlickr("[API Key]","[Auth Secret]");    //  填入 API Key 及 Secret
$f->setToken("[Token]");                 // 填入上面產生的 token
 
// 作自己的事
 
print_r( $f->photosets_getList() );
 
?>

—–
複雜的認證過後,你就可以開始玩 Flickr API 了… phpFlickr 支援所有的 Flickr API,詳細列表請直接參照 API 說明文件

例如要得到所有相簿列表必須要呼叫 flickr.photosets.getList 這個 API,在 phpFlickr 裡面就直接呼叫 $f->photosets_getList() 這個函數即可。也就是把 API 名字中的 “flickr.” 拿掉,並把 . 換成 _ 就是 phpFlickr 支援的函數名稱了!

更詳細的說明請直接參閱 phpFlickr 的網站: http://phpflickr.com/


[備註]
Flickr 實際上並沒有買一年送三個月的活動,但是現在可以買一年 Flickr Pro 帳號送別人,自己也會得到免費三個月的 Flickr Pro 帳號,而這個活動並沒有限制你不能送給自己,所以等於是買一年送三個月。

想參加這個活動的人千萬不要直接去買一年喔,一定要參加 Flickr Gift 活動 “送禮物給自己” 才有多送三個月。

這個活動於太平洋時間 2008 年 1 月 31 日晚上 11時59分 (GMT-8) 結束,也就是台北時間 2008 年 2 月 1 日下午 3時59分 (GMT+8),想買 Flickr Pro 的人請把握時間囉…

在〈Using Flickr API with phpFlickr〉中有 1 則留言

su 發表迴響取消回覆