Ví dụ sau sẽ minh họa cách một trang web có thể lấy thông tin từ cơ sở dữ liệu bằng AJAX
Ví dụ
Thông tin cá nhân sẽ được liệt kê ở đây
Giải thích ví dụ - Cơ sở dữ liệu MySQL
Bảng cơ sở dữ liệu chúng tôi sử dụng trong ví dụ trên trông như thế này
idFirstNameLastNameTuổiQuê hươngCông việc1PeterGriffin41QuahogNhà máy bia2LoisGriffin40NewportGiáo viên dạy piano3JosephSwanson39QuahogSĩ quan cảnh sát4GlennVũng lầy41QuahogPhi côngVí dụ giải thích
Trong ví dụ trên, khi người dùng chọn một người trong danh sách thả xuống ở trên, một hàm có tên "showUser[]" được thực thi
Chức năng được kích hoạt bởi sự kiện onchange
Đây là mã HTML
Ví dụ
Thông tin cá nhân sẽ được liệt kê tại đây.
giải thích mã
Trước tiên, hãy kiểm tra xem người đó có được chọn không. Nếu không chọn người nào [str == ""], xóa nội dung của txtHint và thoát khỏi chức năng. Nếu một người được chọn, hãy làm như sau
- Tạo một đối tượng XMLHttpRequest
- Tạo chức năng sẽ được thực thi khi phản hồi của máy chủ đã sẵn sàng
- Gửi yêu cầu đến một tệp trên máy chủ
- Lưu ý rằng một tham số [q] được thêm vào URL [với nội dung của danh sách thả xuống]
Tệp PHP
Trang trên máy chủ được gọi bởi JavaScript ở trên là một tệp PHP có tên "getuser. php"
Mã nguồn trong "getuser. php" chạy truy vấn đối với cơ sở dữ liệu MySQL và trả về kết quả trong bảng HTML
Khởi động nhanh Google Workspace sử dụng các thư viện ứng dụng API để xử lý một số chi tiết của quy trình xác thực và ủy quyền. Chúng tôi khuyên bạn nên sử dụng các thư viện máy khách cho các ứng dụng của riêng mình. Trước khi bạn có thể chạy ứng dụng mẫu, mỗi lần bắt đầu nhanh đều yêu cầu bạn bật xác thực và ủy quyền. Nếu bạn chưa quen với việc xác thực và ủy quyền cho API Google Workspace, hãy đọc phần Tổng quan về xác thực và ủy quyền
Tạo ứng dụng dòng lệnh JavaScript đưa ra yêu cầu đối với API Lịch Google
mục tiêu
- Thiết lập môi trường của bạn
- thiết lập mẫu
- Chạy mẫu
điều kiện tiên quyết
- Trăn 2. 4 hoặc cao hơn
- Một dự án Google Cloud
- Tài khoản Google có bật Lịch Google
Thiết lập môi trường của bạn
Để hoàn thành phần bắt đầu nhanh này, hãy thiết lập môi trường của bạn
Kích hoạt API
Trước khi sử dụng Google API, bạn cần bật chúng trong dự án Google Cloud. Bạn có thể bật một hoặc nhiều API trong một dự án Google CloudTrong bảng điều khiển Google Cloud, hãy bật API Lịch Google
Kích hoạt API
Ủy quyền thông tin xác thực cho một ứng dụng web
Để xác thực là người dùng cuối và truy cập dữ liệu người dùng trong ứng dụng của bạn, bạn cần tạo một hoặc nhiều OAuth 2. 0 ID khách hàng. ID ứng dụng khách được sử dụng để xác định một ứng dụng cho máy chủ OAuth của Google. Nếu ứng dụng của bạn chạy trên nhiều nền tảng, bạn phải tạo ID ứng dụng khách riêng cho từng nền tảngChuyển đến Thông tin xác thực
- Ứng dụng phía máy khách [JavaScript]–Trong Nguồn gốc JavaScript được ủy quyền, hãy nhấp vào Thêm URI. Sau đó, nhập URI để sử dụng cho các yêu cầu của trình duyệt. Điều này xác định các miền mà từ đó ứng dụng của bạn có thể gửi yêu cầu API tới OAuth 2. 0 máy chủ
- Ứng dụng phía máy chủ [Java, Python, v.v.]–Trong URI chuyển hướng được ủy quyền, hãy nhấp vào Thêm URI. Sau đó, nhập URI điểm cuối mà OAuth 2. 0 máy chủ có thể gửi phản hồi
Lưu ý ID khách hàng. Bí mật máy khách không được sử dụng cho các ứng dụng Web
Ghi lại những thông tin đăng nhập này vì bạn cần chúng sau này trong phần bắt đầu nhanh này
thiết lập mẫu
- Trong thư mục làm việc của bạn, hãy tạo một tệp có tên
index.html
Trong tệp
index.html
, dán mã mẫu saulịch/khởi động nhanh/chỉ mục. html
Xem trên GitHub
Google Calendar API Quickstart
Google Calendar API Quickstart
Authorize Sign Out /* exported gapiLoaded */ /* exported gisLoaded */ /* exported handleAuthClick */ /* exported handleSignoutClick */ // TODO[developer]: Set to client ID and API key from the Developer Console const CLIENT_ID = ''; const API_KEY = ''; // Discovery doc URL for APIs used by the quickstart const DISCOVERY_DOC = '//www.googleapis.com/discovery/v1/apis/calendar/v3/rest'; // Authorization scopes required by the API; multiple scopes can be // included, separated by spaces. const SCOPES = '//www.googleapis.com/auth/calendar.readonly'; let tokenClient; let gapiInited = false; let gisInited = false; document.getElementById['authorize_button'].style.visibility = 'hidden'; document.getElementById['signout_button'].style.visibility = 'hidden'; /** * Callback after api.js is loaded. */ function gapiLoaded[] { gapi.load['client', initializeGapiClient]; } /** * Callback after the API client is loaded. Loads the * discovery doc to initialize the API. */ async function initializeGapiClient[] { await gapi.client.init[{ apiKey: API_KEY, discoveryDocs: [DISCOVERY_DOC], }]; gapiInited = true; maybeEnableButtons[]; } /** * Callback after Google Identity Services are loaded. */ function gisLoaded[] { tokenClient = google.accounts.oauth2.initTokenClient[{ client_id: CLIENT_ID, scope: SCOPES, callback: '', // defined later }]; gisInited = true; maybeEnableButtons[]; } /** * Enables user interaction after all libraries are loaded. */ function maybeEnableButtons[] { if [gapiInited && gisInited] { document.getElementById['authorize_button'].style.visibility = 'visible'; } } /** * Sign in the user upon button click. */ function handleAuthClick[] { tokenClient.callback = async [resp] => { if [resp.error !== undefined] { throw [resp]; } document.getElementById['signout_button'].style.visibility = 'visible'; document.getElementById['authorize_button'].innerText = 'Refresh'; await listUpcomingEvents[]; }; if [gapi.client.getToken[] === null] { // Prompt the user to select a Google Account and ask for consent to share their data // when establishing a new session. tokenClient.requestAccessToken[{prompt: 'consent'}]; } else { // Skip display of account chooser and consent dialog for an existing session. tokenClient.requestAccessToken[{prompt: ''}]; } } /** * Sign out the user upon button click. */ function handleSignoutClick[] { const token = gapi.client.getToken[]; if [token !== null] { google.accounts.oauth2.revoke[token.access_token]; gapi.client.setToken['']; document.getElementById['content'].innerText = ''; document.getElementById['authorize_button'].innerText = 'Authorize'; document.getElementById['signout_button'].style.visibility = 'hidden'; } } /** * Print the summary and start datetime/date of the next ten events in * the authorized user's calendar. If no events are found an * appropriate message is printed. */ async function listUpcomingEvents[] { let response; try { const request = { 'calendarId': 'primary', 'timeMin': [new Date[]].toISOString[], 'showDeleted': false, 'singleEvents': true, 'maxResults': 10, 'orderBy': 'startTime', }; response = await gapi.client.calendar.events.list[request]; } catch [err] { document.getElementById['content'].innerText = err.message; return; } const events = response.result.items; if [!events || events.length == 0] { document.getElementById['content'].innerText = 'No events found.'; return; } // Flatten to string to display const output = events.reduce[ [str, event] => `${str}${event.summary} [${event.start.dateTime || event.start.date}]\n`, 'Events:\n']; document.getElementById['content'].innerText = output; }Thay thế sau đây
YOUR_CLIENT_ID
. ID khách hàng mà bạn đã tạo khi bạnYOUR_API_KEY
. khóa API mà bạn đã tạo dưới dạng
Chạy mẫu
Trong thư mục làm việc của bạn, bắt đầu một máy chủ web
Trăn 2. x
python -m SimpleHTTPServer 8000
Trăn 3. x
python3 -m http.server 8000
Trong trình duyệt của bạn, điều hướng đến
//localhost:8000
Lần đầu tiên bạn chạy mẫu, nó sẽ nhắc bạn cấp quyền truy cập
- Nếu bạn chưa đăng nhập vào Tài khoản Google của mình, bạn sẽ được nhắc đăng nhập. Nếu bạn đã đăng nhập vào nhiều tài khoản, hãy chọn một tài khoản để sử dụng để ủy quyền
- Nhấp vào Chấp nhận
- Sao chép mã từ trình duyệt, dán mã vào dấu nhắc dòng lệnh và nhấn
Enter
Thông tin ủy quyền được lưu trữ trong hệ thống tệp, vì vậy, lần sau khi bạn chạy mã mẫu, bạn sẽ không được nhắc ủy quyền
Bạn đã tạo thành công ứng dụng JavaScript đầu tiên của mình để yêu cầu API Lịch Google