取得 Facebook 中 In This Photo 的資料

此篇文章最近更新時間為2009-09-10 03:55:14 目前共有8篇留言

關於作者 - JosephJ

任職於 Faria。喜好戶外運動、2008 年 5 月完成「跑步環島」。對於新技術跟程式碼有著強烈的偏執狂。

常玩 Facebook 的使用者一定知道它的照片有個叫 In This Photo 的超讚功能,訊息列表中常會有不認識的人上傳許多照片,這些照片的共同處是裡面一定有朋友或自己,甚至有時你還會發現照片提供者居然就是你失聯已久的朋友(像我的軍中弟兄)。這種從他人整理提供的照片、建立起關連性的感覺實在很有趣,老闆就問 Facebook 有沒有 API 可以抓取這樣的資料(針對某人,抓取由其他使用者 Tagging 所建立起的照片)。

In This Photo 的使用方法

首先看一下 In This Photo 的使用,瞭解它是如何串起來的:
  1. 標示人臉 在上傳照片完畢後進入編輯介面,用滑鼠點選朋友的臉就會顯示一個框框,並出現對話框要求我從好友清單中選取人名。

  2. 在我的相簿上 Mouseover 就會看到人名 存檔後,只要滑鼠移到我有標示的人臉上,就會顯示該使用者的名稱,例如 Beckie Fang。

  3. 我去看 Beckie 的照片頁 有趣的是,到 Beckie 的頁面時,就可以看到我所上傳的這張照片,因為我前面做的標示會自動建立關連性,讓這張相片顯示在其他使用者的頁面中。

    所以我的任務就是取得所有有標示某個使用者 (Beckie) 的照片

    試做品

    這是我第一次用 Facebook API,用起來蠻輕鬆愉快的 :D 居然還有貼心的範例程式~ 要玩玩看的請用:http://josephj.com/lab/facebook-photo/ (原始碼)。

    Snap1

    用到了 API 有 friend.get(取得朋友 id 列表)、users.getInfo(從使用者 id 取得使用者姓名)、photos.get(依照使用者 id 取得照片),另外使用了他們官方的 PHP 函式庫



Comments

  1. 2011-03-15 19:39:31
  2. Mendes 2010-02-10 17:35:10
    可以請教您是如何設定Canvas,只讓資料顯示在您所設定的網頁,而不會跑進facebook的iframe裡?
  3. 阿猴 2009-10-28 19:00:20
    哈 打擾一下

    在已登入Facebook的狀態下會正常顯示出相片列表, 但是當我於Facebook登出之後, reload http://josephj.com/lab/facebook-photo/ 就會出現如下的錯誤

    FacebookRestClientException: Session key invalid or no longer valid in /var/www/josephj/lab/facebook-photo/lib/facebookapi_php5_restlib.php on line 3003

    Call Stack
    # Time Memory Function Location
    1 0.0000 57172 {main}( ) ../index.php:0
    2 0.0010 181720 require_once( '/var/www/josephj/lab/facebook-photo/index.dp.php' ) ../index.php:3
    3 0.0013 189228 FacebookRestClient->friends_get( ) ../index.dp.php:7
    4 0.0013 189228 FacebookRestClient->call_method( ) ../facebookapi_php5_restlib.php:1056
  4. awoo 2009-09-15 18:37:20
    這張才是經典 XDD

    http://photos-d.ak.fbcdn.net/hphotos-ak-snc1/hs012.snc1/2914_1133340621492_1466580434_30344899_84991_n.jpg
  5. 一股 2009-09-15 18:21:17
    BECKIE真是一絕
  6. randylien 2009-09-11 19:17:40
    看到熟人了 :D
  7. Adam 2009-09-11 18:53:54
    Beckie的照片真是太經典了,每天看到他都會想起這張!
  8. 2009-09-11 18:39:12
    這樣做就對了!噗
暱稱: 必填。
Email: 非必填。若填寫為不公開欄位,僅供站長參考聯繫。
內容: 必填。限 255 個字元以內。
驗證碼:
送出

Facebook Comment