认证说明页:http://www.flickr.com/services/api/auth.spec.html
2. 認證先決條件
任何想要使用 flickr 認證 API 的應用程式均必須已獲得一個 flickr API key。此外,他們必須配置以下設定,已貼附到 API key︰
- 應用程式標題
- 應用程式描述
- 應用程式徽標圖形(最大 600x300,建議 300x90)(可選的)
- 「關於」URL 的應用程式(可選的)
然後,flickr 將發表一個 API key 的 「共用密鑰」。此密鑰在簽署過程中使用,在第 8 節中詳細說明。
然後應用程式可以選擇兩個認證方法(基於網站或非基於網站)中的一個。每個應用程式 key 可能僅與單一的認證方法相關聯。
2.1. 基於網站的認證
對於基於網站的認證,開發商必須為應用程式註冊一個「回呼 URL」。此 URL 的目的在第 3 節中說明。
2.2. 非基於網站的認證
對於非基於網站的認證,無需附加設定。
2.3. 行動認證
將來,flickr 可能會為行動應用程式提供附加認證機制。
3. 基於網站的應用程式的認證
當基於網站的應用程式需要認證使用者時,應該將使用者重新導向至以下 URL:
http://flickr.com/services/auth/?api_key=[api_key]&perms=[perms]&api_sig=[api_sig]
perms
是應用程式想要代表使用者執行的動作所需的權限層級。這些權限會在第 5 節中說明。api_sig
是一個簽章,如第 8 節中所述。
如果使用者目前未登入 Flickr,則他們首先會被要求登入。
然後 Flickr 會詢問使用者是否希望認證此應用程式。會顯示應用程式名稱和描述以及應用程式希望具有的權限描述。然後使用者可以選擇授予所有要求的權限,還是不授予任何要求的權限。如果使用者授予權限,則會使用先前為使用的 API key 所註冊的回呼 URL 將其重新導回應用程式。回呼 URL 將會附加以下內容:
?frob=[frob]
然後此應用程式應呼叫 API 方法 flickr.auth.getToken,傳送其 API key 和通過的 Frob,並且應使用其共用密鑰簽署(請參閱第 8 節)。接著回應會包含認證記錄(供將來 API 呼叫使用)以及授予的權限。
3.1. 更新基於網站的認證記錄
若要更新認證記錄,基於網站的應用程式只需將使用者再次重新導向至 Flickr 認證 URL 即可。如果使用者已登入 Flickr 並且已經使用要求的權限(或更多權限,只要已授予要求的子集)認證此應用程式,同時記錄尚未到期,則他們會被直接重新導回應用程式並且具有指向現有認證記錄的 Frob。如果記錄已經到期或要求額外權限,則與以前一樣,會提示使用者進行更新。
3.2. 執行指南
認證 cookie 應該僅為單一階段作業儲存。
必須為使用者提供「登出」連結。
4. 用於非基於網站的應用程式的認證
對於桌面和其他非基於瀏覽器的應用程式來說,第一步是呼叫 API 方法 flickr.auth.getFrob,該方法需要簽署(請參閱第 8 節)。對此方法呼叫的回覆包含一個「Frob」,該 Frob 應該接著被用於建立 URL 以將使用者導向至以下 URL(在系統預設瀏覽器中開啟):
http://flickr.com/services/auth/?api_key=[api_key]&perms=[perms]&frob=[frob]&api_sig=[api_sig]
其他參數如第 3 節中所述。當使用者授予權限時,Flickr 會在螢幕顯示「permissions granted - return to your app(已授予權限 - 請返回你的應用程式)」,而不是將使用者導離網站。
當使用者告知他們已經過認證時,應用程式應該呼叫 API 方法 flickr.auth.getToken,傳送其 API key 和 Frob(必須簽署呼叫 - 請參閱第 8 節)。接著回覆會包含認證記錄(供將來 API 呼叫使用)以及授予的權限。
4.1. 更新非基於網站的認證記錄
若要檢查記錄是需要更新還是已具有足夠的權限,應用程式應該呼叫 flickr.auth.checkToken 方法。如果記錄無效或缺少有關權限,則應用程式應使用與第一次的要求記錄相同的序列來要求新記錄。
4.2. 執行指南
使用者的個人檔案資料(包含認證記錄)應該儲存在本機使用者的「個人檔案」中,以便具有多個個人檔案/使用者的機器可以在他們之間轉換而無需共用認證資料。在 Windows 下,這可能相當於在註冊表的 HKEY_CURRENT_USER 下儲存資料,而在 OSX/Unix 中,可能相當於在使用者的基本目錄中儲存資料。
必須為使用者提供「登出」功能。
Flickr 找不到有效的回呼 URL。
设置回呼url 。http://localhost/php/flickr/
参考:
http://josephj.com/prototype/JosephJiang/Presentation/OpenAPI_Workshop/flickr-auth-api.html
http://see.sl088.com/wiki/Flickr/API/%E8%AE%A4%E8%AF%81
http://www.wumii.com/item/Gyl0ic0t