flickr api authentication

认证说明页: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

原文地址:https://www.cnblogs.com/youxin/p/2998950.html