總覽
本文件將透過完整範例,逐步說明如何使用 Embed API。完成後,應用程式看起來會像這樣。
建立簡易資訊主頁
您可以按照下列 2 個簡單步驟,在伺服器上執行範例應用程式:
- 建立新的用戶端編號
- 複製並貼上代碼
這個應用程式啟動完畢之後,下一節會詳細說明如何將所有部分整合在一起。
建立新的用戶端 ID
Embed API 提供一鍵登入元件,可採用您熟悉的 OAuth 2.0 流程,可為您處理幾乎所有的授權程序。若要讓這個按鈕在您的網頁上運作,您需要有用戶端 ID。
如果您從未建立用戶端 ID,可以按照 這些操作說明操作。
在按照指示進行操作時,請務必避免忽略這兩個重要步驟:
- 啟用 Analytics API
- 設定正確的來源
來源可控管哪些網域可使用此程式碼授權使用者。這樣可以防止他人複製您的程式碼,並在他們的網站中執行。
舉例來說,如果您的網站由 example.com 網域代管,請務必為用戶端 ID http://example.com
設定下列來源。如要在本機測試程式碼,您還需要新增本機伺服器的來源,例如:http://localhost:8080
。
複製及貼上程式碼
設定包含正確來源設定的用戶端 ID 後,您就可以開始建立示範。只需將下列程式碼複製並貼入伺服器外掛程式的 HTML 檔案中 (例如「在這裡插入用戶端 ID」部分),
<!DOCTYPE html> <html> <head> <title>Embed API Demo</title> </head> <body> <!-- Step 1: Create the containing elements. --> <section id="auth-button"></section> <section id="view-selector"></section> <section id="timeline"></section> <!-- Step 2: Load the library. --> <script> (function(w,d,s,g,js,fjs){ g=w.gapi||(w.gapi={});g.analytics={q:[],ready:function(cb){this.q.push(cb)}}; js=d.createElement(s);fjs=d.getElementsByTagName(s)[0]; js.src='https://apis.google.com/js/platform.js'; fjs.parentNode.insertBefore(js,fjs);js.onload=function(){g.load('analytics')}; }(window,document,'script')); </script> <script> gapi.analytics.ready(function() { // Step 3: Authorize the user. var CLIENT_ID = 'Insert your client ID here'; gapi.analytics.auth.authorize({ container: 'auth-button', clientid: CLIENT_ID, }); // Step 4: Create the view selector. var viewSelector = new gapi.analytics.ViewSelector({ container: 'view-selector' }); // Step 5: Create the timeline chart. var timeline = new gapi.analytics.googleCharts.DataChart({ reportType: 'ga', query: { 'dimensions': 'ga:date', 'metrics': 'ga:sessions', 'start-date': '30daysAgo', 'end-date': 'yesterday', }, chart: { type: 'LINE', container: 'timeline' } }); // Step 6: Hook up the components to work together. gapi.analytics.auth.on('success', function(response) { viewSelector.execute(); }); viewSelector.on('change', function(ids) { var newIds = { query: { ids: ids } } timeline.set(newIds).execute(); }); }); </script> </body> </html>
程式碼逐步操作說明
本節將逐步引導您瞭解應用程式範例程式碼中的內容。瞭解運作方式後,應該就能自行建立項目。
步驟 1:建立元件容器
大部分的 Embed API 元件會在頁面上以視覺化方式呈現內容。您可以透過建立容器的方式來控制這些元件的位置。在範例應用程式中,有一個驗證按鈕、一個檢視畫面選取器和一張圖表。這些元件每個都會在下列 HTML 元素中算繪:
<section id="auth-button"></section> <section id="view-selector"></section> <section id="timeline"></section>
建立元件時,您必須根據元件 ID 屬性說明要使用的容器,如後續範例中所示。
步驟 2:載入程式庫
您可以利用下列程式碼片段載入 Embed API。
<script> (function(w,d,s,g,js,fjs){ g=w.gapi||(w.gapi={});g.analytics={q:[],ready:function(cb){this.q.push(cb)}}; js=d.createElement(s);fjs=d.getElementsByTagName(s)[0]; js.src='https://apis.google.com/js/platform.js'; fjs.parentNode.insertBefore(js,fjs);js.onload=function(){g.load('analytics')}; }(window,document,'script')); </script>
程式庫完全載入後,系統會叫用所有傳遞至 gapi.analytics.ready
的回呼。
<script> gapi.analytics.ready(function() { // Put your application code here... }); </script>
步驟 3:授權使用者
Embed API 提供一鍵登入元件,可採用熟悉的 OAuth 2.0 流程,可為您處理幾乎所有的授權程序。若要在您的網頁上試用此按鈕,您需要傳入容器參照和您的用戶端 ID。
gapi.analytics.auth.authorize({ container: 'auth-button', clientid: CLIENT_ID, });
這項操作會在元素中產生一個包含「auth-button」 ID 的按鈕,為您處理授權流程。
步驟 4:建立檢視畫面選取器
檢視畫面選取器元件可用來取得特定檢視畫面的 ID,以便執行報表。
只要取得您在步驟 1 中建立的容器參照,即可建立檢視畫面選取器。
var viewSelector = new gapi.analytics.ViewSelector({ container: 'view-selector' });
這項操作會建立檢視畫面選取器元件,但尚未在網頁上算繪。如要執行此操作,您必須呼叫 execute()
(在步驟 6 中處理)。
步驟 5:建立時間軸圖表
Embed API 可提供 Google 圖表的圖表元件,以及單一報表物件。這樣可大幅簡化顯示資料的程序,因為圖表物件會在場景後方執行報表,並自動更新結果為結果。
如要建立圖表元件,您必須指定 API 查詢參數以及圖表選項。在圖表選項中,系統會參照您在步驟 1 所建立容器的 ID。
var timeline = new gapi.analytics.googleCharts.DataChart({ reportType: 'ga', query: { 'dimensions': 'ga:date', 'metrics': 'ga:sessions', 'start-date': '30daysAgo', 'end-date': 'yesterday', }, chart: { type: 'LINE', container: 'timeline' } });
與檢視選取器一樣,這會建立圖表元件,但如要轉譯至需要呼叫 execute()
的頁面,我們將在下一個步驟中說明。
步驟 6:連接元件以搭配使用
Embed API 元件會在發生各種情況時觸發事件,例如成功授權、選取新檢視畫面或完整轉譯圖表。
本指南中的範例應用程式會等到授權完成後才轉譯檢視畫面選取器,而且每當從檢視畫面選取器選取新檢視畫面時,就會更新時間軸圖表。
gapi.analytics.auth.on('success', function(response) { viewSelector.execute(); }); viewSelector.on('change', function(ids) { var newIds = { query: { ids: ids } } timeline.set(newIds).execute(); });
如需各種元件發出的所有事件完整清單,請參閱 API 參考資料。
後續步驟
本指南逐步說明如何使用 Embed API 建立基本視覺化內容。如要進一步瞭解相關功能,請參閱 API 參考資料。