Upload
-
View
444
Download
1
Embed Size (px)
Citation preview
1
Google API & Google Analytics
《 2016 寒假宅學營》
簡報人員:許舜博日 期: 2016/1/20
outline
2
1.何謂 API
2.Google API
3.OAuth2.0
4.Google Analytics
outline
3
1.何謂 API
2.Google API
3.OAuth2.0
4.Google Analytics
API
4
• Application Programming Interface(應用程式介面 ),就是軟體系統不同組成部分銜接的約定。• 由於近年來軟體的規模日益龐大,常常會需要把複雜的系統劃分成小的組成部分,因此 API的設計十分重要。• 良好的 API設計可以降低系統各部分的相互依賴,提高組成單元的內聚性,降低組成單元間的耦合程度,進而提高系統的維護性和擴展性。
好的 API 不會讓你上天堂,但可減輕你的負擔
API 的任性
5
• API通常由通常跟隨著某程式服務,當原服務升級或改版,API可能也需要跟著升級改版。
• API供應端不會顧慮使用者層面亦無道義可言。
outline
6
1.何謂 API
2.Google API
3.OAuth2.0
4.Google Analytics
Google API
7
Google從早期提供 App Engine使用的 SDK到 Google Data API,漸漸得演變成以 RESTful為主的 API模式。
近期, RESTful API的模式幾乎統一了整個 Google APIs的呼叫,甚至新一代的雲端服務,都以 RESTful API為優先考量。
Google API
8
Google API的管理介面整合到Cloud Console(https://console.developers.google.com/)
Google Developers Console
9
開發者可以在這邊清楚的瞭解目前使用該 API的狀態。
Google Map
10
Google Map
11
Google Map、 GPS• Location Base Game(適地性遊戲 )• 路徑紀錄
Google Calendar
12
YouTube
13
• 崁入 YouTube影片,增加互動性。• 管理影片。
延伸應用
14
有了這些 Google API我們能夠使用 Google提供的服務,不管是Web應用程式還是手機 APP,更輕鬆地站在巨人的肩膀上做不同的應用。
社群帳號登入
15
社群帳號登入
16
Google 帳號登入
17
過去 現在
outline
18
1.何謂 API
2.Google API
3.OAuth2.0
4.Google Analytics
如何使用 Google 帳號登入 ?
19
• Google OAuth2.0 驗證OAuth是一個關於授權( Authorization)的開放網絡標準,在全世界得到廣泛應用,目前的版本是 2.0版。規格書:The OAuth 2.0 Authorization Framework (RFC 6749)。
應用場景
20
EX:有一個「照片修圖的網站」,可以將用戶儲存在 Google上的照片,依喜好調整照片補光、修圖。今天「老梅」為了想要換一張帥氣的大頭照而使用該網站的服務,必須讓「照片修圖的網站」讀取自己儲存在 Google上的照片。
問題是只有得到「老梅」的授權, Google 才會同意「照片修圖的網站」讀取這些照片。那麼, 「照片修圖的網站」怎樣獲得用戶的授權呢?
傳統方法
21
「老梅」將自己的 Google用帳號和密碼,告訴「照片修圖的網站」以便讀取的照片。這樣的做法有以下幾個嚴重的缺點:Χ 「照片修圖的網站」為了後續的服務,會保存用戶的密碼,這樣很不安全。Χ 「照片修圖的網站」擁有了獲取用戶儲存在 Google 所有資料的權力, 「老梅」無
法限制「照片修圖的網站」獲得授權的範圍和有效期。Χ 「老梅」只有修改密碼,才能收回賦予「照片修圖的網站」的權力。但是這樣做,會使得其他所有獲得授權的第三方應用程序全部失效。
Χ 只要有一個第三方應用程序被破解,就會導致用戶密碼洩漏,以及所有被密碼保護的數據洩漏。 OAuth 就是為了解決上面這些問題而誕生的
名詞定義
22
詳細講解 OAuth 2.0 之前,先介紹以下幾個專有名詞:
• Client:客戶端,又稱 " 第三方應用程式 "(Third-party application),即例子中的「照片修圖的網站」 。
• Resource Owner:資源所有者,又稱 "用戶 " (user),即例子中的「老梅」。• Authorization server:認證伺服器,即服務供應商 (Google)管理所有授權
事務的伺服器。• Resource server:資源伺服器,服務供應商存放用戶資源的伺服器,即例子
中 Google存放「老梅」照片的地方。
OAuth 的思路
23
「老梅」透過「認證伺服器」授權給「照片修圖的網站」讀取 Google上儲存「老梅」的「照片伺服器」。
Resource Owner
Client
Authorization server
Resource server
OAuth 運行流程
24
「老梅」
「照片修圖的網站」
認證伺服器
照片伺服器摘自 RFC 6749
客戶端的授權模式
25
上述 A~F 步驟中,可以看出 B 是關鍵 ( 用戶怎樣才能給於客戶端授權 ) 。有了這個授權以後,客戶端就可以獲取 Token ,進而獲取資源。
• OAuth 2.0 定義了四種授權方式:1. 授權碼模式( Authorization Code)2. 簡化模式( Implicit)3. 密碼模式( Resource Owner Password Credentials)4. 客戶端模式( Client Credentials)
1. 授權碼模式 (Authorization Code)
26
瀏覽器
授權碼模式( Authorization Code )是功能最完整、流程最嚴密的授權模式。
是否給予客戶端授權
27
2. 簡化模式 (Implicit)
28
3. 密碼模式(Resource Owner Password Credentials)
29
通常用在用戶對客戶端高度信任的情況下,比如客戶端是操作系統的一部分,或者由一個著名公司出品。而認證服務器只有在其他授權模式無法執行的情況下,才能考慮使用這種模式,很少服務供應商支援。。
4. 客戶端模式 (Client Credentials)
30
客戶端以自己的名義,而不是以用戶的名義,向「服務提供商」進行認證。EX :存取公開資料,很少服務提供商會支援。
OAuth 2.0 實作
31
Service 支援的 Grant Types Client 認證Google Authorization Code, Implicit POST
Facebook Authorization Code, Implicit, Client Cred. GET
建立開發者專用金鑰
設定授權頁面
32
實際頁面與授權頁面不同就不會賦予認證。
OAuth2.0 驗證應用
33
除了上述更具安全性以外,整合第三方應用程式存取服務供應商個人資料的一套規則, OAuth2.0 驗證是一個協定。同時引用 FaceBook 登入與 Google 登入,有別以往需引入各自的 SDK根據各自不同的規則開發。有了 OAuth2.0 這套協定以後,可以用同一套規則做到各大社群的認證,讓開發者更方便快速進行開發與偵錯。
outline
34
1.何謂 API
2.Google API
3.OAuth2.0
4.Google Analytics
Google Analytics
35
改善使用者介面經驗的最佳研究方法 網站流量分析能提供那些有用資訊
►網站每天訪客數量網站平均轉換率►網站訪客來源地理分佈►網站每天訪客► - 瀏覽數最高的網頁頁面訪客在網站的平均停留時間►
網站醫生
Google Analytics 的優勢
36
無須軟體使用費 支援應用程式介面 (API)
客製化流量分析報表 查看功能介面
圖出自於 e-nor,結果發現 GA 的市占率高達 67%
Google Analytics 運作原理
37
崁入 Google AnalyticsTracking Code(GATC)
網站訪客
造訪網站 Google分析伺服器
訪客行為報表
分析者
Google Analytics API
39
有效組合 - 並非所有的維度和指標可以查詢在一起。只有某些維度和指標可以一起使用,以創建有效的組合。出自 Google Analytics Core Reporting API
Google Analytics API 應用
40
因此有了 Google Analytics API我們能夠透過 Oauth2.0 驗證取得Google Analytics 服務下的各樣資訊,方便我們網站做更多的規劃。
API 延伸應用
41
服務供應商、企業近年來開放資料與應用程式提供合作夥伴、開發人員、行動運算應用。API 提供了一個標準,橫跨行動裝置、網路 、服務與雲端開放資訊資產。為了能夠使 API 更有效的分享資訊以及資訊安全上的考量並且須符合經濟效益。企業必須能夠應付安全性、效能管理,以及資料運用的重大挑戰。API 管理套件衍生而出,結合先進的功能供後端整合、行動最佳化、雲端管理以及開發人員管理使用。
參考資料
42
• The OAuth 2.0 Authorization Framework
• Social Login Trends Across the Web: Q1 2015http://janrain.com/blog/social-login-trends-across-the-web-q1-2015/
• 第一次接觸Google API 就上手http://www.ithome.com.tw/guest-post/98590
• 理解 OAuth 2.0http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html
• OAuth 2.0 筆記https://speakerdeck.com/chitsaou/jian-dan-yi-dong-de-oauth-2-dot-0
43
Thank You~