google cloud print in android
TRANSCRIPT
![Page 1: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/1.jpg)
GOOGLE CLOUD PRINT IN ANDROID
GVHD: Nguyễn Trần Thi VănSV thực hiện: 1. Nguyễn Xuân Bàng2. Từ Quốc Lân
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
![Page 2: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/2.jpg)
2 Các nội dung chính
I. Cloud và Google Cloud PrintII. Sơ đồ hoạt động Google Cloud Print (GCP)III. Các service interfaces
1. Submitting jobs2. Receiving jobs3. Sharing printers
IV. Tìm hiểu về JSONV. Hiện thực các bước bằng code
![Page 3: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/3.jpg)
I. Cloud và Google Cloud Print
Định nghĩa: Cloud:
3
![Page 4: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/4.jpg)
4 I. Cloud và Google Cloud Print
Google Cloud Print:1. Là dịch vụ web được phát triển bởi Google2. Người dùng có thể tương tác với các máy in thông
qua tài khoản Google3. Cho phép tương tác các máy in với tài khoản đó.4. Khi nhận lệnh in từ người dùng, GCP xác định
máy in thích hợp để thực thi
![Page 5: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/5.jpg)
5 I. Cloud và Google Cloud Print
Google Cloud Print:
![Page 6: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/6.jpg)
6 II. Sơ đồ hoạt động
1. Xác thực
2. Sử dụng dịch vụ
1. Xác thực
![Page 7: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/7.jpg)
7 1. Xác thực bằng việc đăng nhập (ClientLogin authorization )
“ClientLogin” có thể được sử dụng với bất kỳ ứng dụng nào có thể tạo yêu cầu HTTP POST.
Với URL yêu cầu: https://www.google.com/accounts/ClientLogin
Theo sau URL trên là các đối số
![Page 8: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/8.jpg)
8
Đối số Mô tảaccountType
Loại tài khoản yêu cầu các thực. Dùng “HOSTED_OR_GOOGLE” nếu là tài khoản Google
Email Địa chỉ email đầy đủ ([email protected])
Passwd Mật khẩu người dùng
service Tên dịch vụ yêu cầu xác thực. Google Calendar là 'cl‘, Google Cloud Print là ‘cloudprint’…
source Xác định ứng dụng người dùng. Mẫu : “tenCongTy-tenUngDung-phienBan”
logintoken (tùy chọn) Nếu đăng nhập thất bại. Lần sau bạn phải nhập chuỗi này.
logincaptcha
(tùy chọn) Chuỗi người dùng nhập để trả lời CAPTCHA
1. Xác thực bằng việc đăng nhập (ClientLogin authorization ) (tt)
![Page 9: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/9.jpg)
9
Ví dụ:
https://www.google.com/accounts/ClientLogin?accountType=HOSTED_OR_GOOGLE&[email protected]&Passwd=north23AZ&service= cloudprint&source=UTE-App-1.0&logintoken=DQAAAGgA...dkI1LK9&logincaptcha=brinmar
![Page 10: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/10.jpg)
101. Xác thực bằng việc đăng nhập (ClientLogin authorization ) (tt)
Hồi đáp của Google cho một yêu cầu xác thực: HTTP 200, nếu thành công
HTTP/1.0 200 OKSID=DQAAAGgA...7Zg8CTNLSID=DQAAAGsA...lk8BBbGAuth=DQAAAGgA...dk3fA5N
HTTP 403, nếu thất bại
HTTP/1.0 403 Access ForbiddenError=BadAuthentication
Tham khảo các lỗi: https://developers.google.com/accounts/docs/AuthForInstalledApps#Request
![Page 11: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/11.jpg)
11 II. Sơ đồ hoạt động
1. Xác thực
2. Sử dụng dịch vụ
2. Sử dụng dịch vụ
![Page 12: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/12.jpg)
12 2. Sử dụng dịch vụ GCP
Khi xác thực thành công, chúng ta có thể gọi các giao diện dịch vụ mà GCP cung cấp. Có 3 loại chính: Submitting print jobs Receiving print jobs Sharing printers
![Page 13: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/13.jpg)
13 III. Các service interfaces1. Submitting Jobs
-Gồm 5 interfaces sau: /submit: gửi một lệnh in đến GCP /deleteJob: xóa một máy in xác định nào đó /jobs: lấy danh sách các lệnh in /printer: lấy tất cả các thuộc tính của máy in xác
định /search: danh sách các máy in xử dụng gần đây
-Cách sử dụnghttps://www.google.com/cloudprint/submit?paramters
![Page 14: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/14.jpg)
14
-Ví dụ: https://www.google.com/cloudprint/submit?printerid=_google_doc_&title=TieuDe&ticket=aTicket&content=NoiDung&contentType=image/png
Đối số Mô tả
printerid * Mã máy in được tạo bởi GCP, được lấy nhờ vào /seacrch
title * Tiêu đề lệnh in
ticket * Gồm các thẻ theo định dạng CJT
content * Nội dung cần in, có thể là chuỗi hoặc một tập tin
contentType
(tùy chọn) loại tài liệu theo chuẩn MIME
tag (tùy chọn) được thêm vào lệnh in, hữu ích trong việc gửi và nhận lệnh in trong tương lai
1./submit
![Page 15: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/15.jpg)
15
- Hồi đáp từ GCP:+ Là một đối tượng JSON+ Chứa:
Biến Boolean chỉ ra kết quả submit XSRF token được sử dụng Danh sách các đối số kèm theo với yêu cầu
![Page 16: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/16.jpg)
16
- Hồi đáp từ GCP:+Là một đối tượng JSON+Chứa:
Biến Boolean chỉ ra kết quả xóa Một tin nhắn kèm theo XSRF token được sử dụng Danh sách các đối số kèm theo với yêu cầu
Đối số Mô tả
jobid * Mã máy in cần xóa,
2./deleteJobs
![Page 17: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/17.jpg)
2./jobs17
Đối số Mô tảprinterid (tùy chọn) Tìm những lệnh in theo mã máy in
owner (tùy chọn) Chỉ ra tài khoản nào sở hữu máy in
status (tùy chọn) Trạng thái hiện tại của việc in (QUEUED, IN_PROGRESS, DONE, ERROR, SUBMITTED, HELD)
q (tùy chọn) Tiêu đề hoặc thẻ (tag) có chứa chuỗi q này
offset (tùy chọn) Tìm tại offset cho trước
limit (tùy chọn) Giới hạn số lệnh cần tìm
sortorder (tùy chọn) Chỉ tiêu sắp xếp: CREATE_TIME, CREATE_TIME_DESC, STATUS, …, TITLE, …
![Page 18: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/18.jpg)
18 2./jobs-Hồi đáp từ GCP:
Là một đối tượng JSONChứa:
Giá trị Boolean chỉ ra kết quả tìm Danh sách các đối số kèm theo với yêu cầu Danh sách các lệnh in, với mỗi lệnh (id, printerid,
printerName, title, contentType, fileUrl, ticketUrl….)
![Page 19: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/19.jpg)
19 3./printer
Đối số Mô tả
printerid * Mã máy in
use_cdd Nếu = true, lấy về tất cả các đặc tính máy in này
extra_fields
Bao gồm các thuộc tính mở rộng như: connectionStatus…
![Page 20: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/20.jpg)
20 3./printer-Hồi đáp từ GCP:
Là một đối tượng JSONChứa:
Giá trị Boolean chỉ ra kết quả tìm Danh sách các đối số kèm theo với yêu cầu Danh sách các thuộc tính của máy in đó (id, name,
defaultDisplayName, displayName, description, type, proxy , createTime,….)
![Page 21: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/21.jpg)
21 2./jobs
Đối số Mô tả
printerid * Mã máy in
use_cdd Nếu = true, lấy về tất cả các đặc tính máy in này
extra_fields
Bao gồm các thuộc tính mở rộng như: connectionStatus…
![Page 22: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/22.jpg)
22
Đối số Mô tả
printerid (tùy chọn) Tìm những lệnh in theo mã máy in
owner (tùy chọn) Chỉ ra tài khoản nào sở hữu máy in
status (tùy chọn) Trạng thái hiện tại của việc in (QUEUED, IN_PROGRESS, DONE, ERROR, SUBMITTED, HELD)
q (tùy chọn) Tiêu đề hoặc thẻ (tag) có chứa chuỗi q này
offset (tùy chọn) Tìm tại offset cho trước
limit (tùy chọn) Giới hạn số lệnh cần tìm
sortorder (tùy chọn) Chỉ tiêu sắp xếp: CREATE_TIME, CREATE_TIME_DESC, STATUS, …, TITLE, …
4./search
![Page 23: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/23.jpg)
23 2. Receiving Print Jobs
Mục đích: sẽ giúp các nhà phát triển phần mềm xây dựng các máy in và phần mềm in tích hợp các giải pháp của họ với dịch vụ Google Cloud Print để cho phép máy in của mình nhận được công việc từ Google Could
Các bước thực hiện Các Interfaces
![Page 24: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/24.jpg)
24 Các bước thực hiện
- Bước 1: Đăng ký máy in+ Chuẩn bị các máy in ở trạng thái sẵn sàng để có thể đăng ký với GCP(Google Cloud Print)+ Sử dụng kết nối GCP của Google Chrome để đăng ký máy in (đối với máy in cổ điển)
![Page 25: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/25.jpg)
25 Các bước thực hiện- Bước 2: Máy in xử lý+ Đồng bộ hóa với việc đăng ký GCP: Kiểm tra các dich vụ Cloud Print và đồng bộ trạng thái và tính năng của máy in với danh sách của Cloud+ Cập nhật máy in : Nếu một máy in đã được đăng ký, nhưng thông tin về nó đã thay đổi vì các lỗi, nâng cấp hoặc có sự cố, chúng ta có thể sử dụng interface /update để sửa lại các trường đã được thiết lập lúc đăng ký
![Page 26: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/26.jpg)
26 Các bước thực hiện- Bước 3: Xử lý công việc in+ Nhận thông báo: Máy in sẽ nhận thông báo từ dịch vụ Google Cloud Print thông qua một kết nối+ Lấy công việc in: Máy in sẽ sử dụng interface /fetch để lấy tất cả các công việc có sẵn trong hàng đợi+ Xử lý việc in: Sử dụng interface /control để kiểm soát tình trạng của việc in ấn
![Page 27: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/27.jpg)
27 Các InterfacesGồm 6 interface /control : kiểm soát tình trạng của công việc in ấn /delete : xóa một máy in từ Google Cloud Print /fetch : lấy các công việc kế tiếp do máy in quy
định /list : cung cấp một danh sách các máy in của người
dùng /register: đăng ký máy in /update : cập nhật các thuộc tính và thông số của
máy in đã đăng ký với Google Cloud Print
![Page 28: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/28.jpg)
28 1./control- Phiên bản GCP 2.0
Đối số Mô tả
jobid Xác định công việc duy nhất( được tạo ra bởi server)
semantic_state_diff Sử dụng để cập nhật trạng thái và số lượng của các trang in
- Các phiên bản < GCP 2.0: có 4 đối số+ jobid+ status+ code+ message
![Page 29: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/29.jpg)
29- Hồi đáp từ GCP+ Là 1 chuỗi JSON+ Chứa: biến Boolean để chỉ ra kết quả submit một tin nhắn token XSRF sử dụng một danh sách các đối số yêu cầu các đối tượng công việc cập nhật+ Ví dụ:
![Page 30: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/30.jpg)
30 2./deleteĐối số Mô tả
printerid Xác định máy in duy nhất( được tạo ra bởi Google Cloud Print)
- Hồi đáp từ GCP+ Là 1 chuỗi JSON+ Chứa:• biến Boolean để chỉ ra kết quả submit• một tin nhắn• token XSRF sử dụng• một danh sách các đối số yêu cầu+ Ví dụ:
![Page 31: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/31.jpg)
31 3./fetchĐối số Mô tả
printerid Xác định máy in duy nhất( được tạo ra bởi Google Cloud Print)
- Hồi đáp từ GCP+ Là 1 chuỗi JSON+ Chứa:• biến Boolean để chỉ ra kết quả submit• một danh sách các đối số yêu cầu• một danh sách các công việc
![Page 32: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/32.jpg)
32+ Ví dụ :
![Page 33: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/33.jpg)
33 4./listĐối số Mô tả
proxy Xác định các proxy
extra_fields Danh sách các trường bổ sung được ngăn cách bỡi dấu phẩy
- Hồi đáp từ GCP+ Là 1 chuỗi JSON+ Chứa:• biến Boolean để chỉ ra kết quả submit• một danh sách các đối số yêu cầu• một danh sách các đối tượng máy in
![Page 34: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/34.jpg)
34 + Ví dụ :
![Page 35: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/35.jpg)
35 5./registerĐối số Mô tả
name Tên hệ thống của máy in (không cần phải là duy nhất)
default_display_name
Tên của máy in sẽ được hiển thị cho người sử dụng
proxy Xác định các máy in client hoặc proxy (nhiều máy in có thể chia sẻ cùng proxy)
uuid Nhà sản xuất-cung cấp số serial của máy in
manufacturer Tên của các nhà sản xuất máy in
model Mô hình máy in.
gcp_version Phiên bản của giao thức GCP máy in hỗ trợ, ví dụ như "2.0"
setup_url URL hướng dẫn cài đặt máy in.
support_url URL mà người dùng sẽ đi tới nếu họ có nhu cầu hỗ trợ
![Page 36: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/36.jpg)
36Đối số Mô tả
update_url URL mà người dùng sẽ được dẫn đến máy in nếu cần một bản cập nhật firmware
firmware Phiên bản firmware của máy in
local_settings Thiết lập cục bộ của máy in
semantic_state Trạng thái hiện tại của máy in
capabilities Tính năng của máy in
defaults Thiết lập máy in mặc định
tag Tag thêm vào máy in
data Dữ liệu cá nhân them vào máy in
![Page 37: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/37.jpg)
37- Hồi đáp từ GCP+ Là 1 chuỗi JSON+ Chứa:• biến Boolean để chỉ ra kết quả submit• token XSRF sử dụng• một danh sách các đối số yêu cầu• một danh sách các máy in+ Ví dụ
![Page 38: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/38.jpg)
38 6./updateĐối số Mô tả
printerid Xác định máy in duy nhất (được tạo ra bởi Google Cloud Print)
name Tên hệ thống của máy in (không cần phải là duy nhất)
default_display_name
Tên của máy in sẽ được hiển thị cho người sử dụng
proxy Xác định các máy in client hoặc proxy (nhiều máy in có thể chia sẻ cùng proxy)
uuid Nhà sản xuất-cung cấp số serial của máy in
manufacturer Tên của các nhà sản xuất máy in
model Mô hình máy in.
gcp_version Phiên bản của giao thức GCP máy in hỗ trợ, ví dụ như "2.0"
setup_url URL hướng dẫn cài đặt máy in.
support_url URL mà người dùng sẽ đi tới nếu họ có nhu cầu hỗ trợ
![Page 39: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/39.jpg)
39Đối số Mô tả
update_url URL mà người dùng sẽ được dẫn đến máy in nếu cần một bản cập nhật firmware
firmware Phiên bản firmware của máy in
local_settings Thiết lập cục bộ của máy insemantic_state Trạng thái hiện tại của máy in
capabilities Tính năng của máy in
defaults Thiết lập máy in mặc định
tag Tag thêm vào máy in
remove_tag Bỏ tag ra khỏi máy in
data Dữ liệu cá nhân thêm vào máy in
remove_data Bỏ dữ liệu cá nhân ra khỏi máy in
![Page 40: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/40.jpg)
40- Hồi đáp từ GCP+ Là 1 chuỗi JSON+ Chứa:• biến Boolean để chỉ ra kết quả submit• một tin nhắn• token XSRF sử dụng• một danh sách các đối số yêu cầu• một đối tượng máy in được truy cập+ Ví dụ
![Page 41: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/41.jpg)
41 3. Sharing Printers
- Mục đích: sẽ giúp các nhà phát triển phần mềm chia sẻ máy in kết hợp với một tài khoản xác thực- Các Interfaces: Gồm 2 interface /share : chia sẻ máy in với một phạm vi (người
dùng hoặc nhóm hoặc tên miền) /unshare : xóa một phạm vi của máy in
![Page 42: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/42.jpg)
42 1./shareĐối số Mô tả
printerid ID của máy in được chia sẻ
scope Email của người dùng hoặc nhóm hoặc tên miền để chia sẻ máy in
role Vai trò của người dùng hoặc nhóm được gán. Có thể là USER hoặc MANAGER
skip_notification True để không gửi một email mời đến phạm vi các máy in được chia sẻ.
![Page 43: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/43.jpg)
43- Hồi đáp từ GCP+ Là 1 chuỗi JSON+ Chứa:• biến Boolean để chỉ ra kết quả submit• một tin nhắn• token XSRF sử dụng• một danh sách các đối số yêu cầu
![Page 44: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/44.jpg)
44 2./unshare
Đối số Mô tả
printerid ID của máy in không được chia sẻ
scope Email của người dùng hoặc nhóm hoặc tên miền để xóa chia sẻ từ máy in
-Hồi đáp từ GCP : giống hồi đáp của interface /share
Tài liệu tham khảo: https://developers.google.com/cloud-print/
![Page 45: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/45.jpg)
45 IV. Tìm hiểu về JSON
JSON (JavaScript Object Notation) : là một dạng chuẩn để định dạng dữ liệu, nó có thể dùng để lưu trữ và trao đổi thông tin văn bản
Lợi ích của JSON: khi sử dụng JSON với JavaScript thì không cần phải có các bước phân tích phức tạp như đối với XML. Mà có thể truy vấn trực tiếp giá trị theo tên (khóa) được định nghĩa trong JSON.
JSON là một chuẩn cực kỳ quan trọng trong lập trình ở phía client
![Page 46: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/46.jpg)
46 Ví dụ- Dữ liệu XML - Dữ liệu JSON
Sử dụng JavaScript để đọc dữ liệu
![Page 47: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/47.jpg)
47 Các trường hợp nên sử dụng JSON
Lưu trữ dữ liệu đơn thuần, khi bạn muốn lưu trữ dữ liệu dưới dạng metadata ở phía server. Chuỗi JSON sẽ được lưu vào database và sau đó khi cần dữ liệu thì sẽ được giải mã
Sử dụng JavaScript để xử lý thông tin trả về từ phía server. Rất nhanh và rất dễ dàng.
![Page 48: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/48.jpg)
48 IV. Hiện thực các bước bằng code1. Lấy chuỗi xác thực2. authorizeURL=“https
://www.google.com/accounts/ClientLogin?accountType=HOSTED_OR_GOOGLE&[email protected]&Passwd=north23AZ&service= cloudprint&source=UTE-App-1.0”
![Page 49: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/49.jpg)
49 1. Lấy chuỗi xác thực
URL url = new URL(authorizeURL);HttpURLConnection connection = (HttpURLConnection)url.openConnection();InputStream inStream = connection.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(inStream));StringBuilder builder = new StringBuilder();String line;String response="";while ((line = reader.readLine()) != null) { builder.append(line); builder.append("\r\n");}response =builder.toString();
![Page 50: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/50.jpg)
50 1. Lấy chuỗi xác thực
Sử dụng các hàm cắt chuỗi để lấy ra chuỗi xác thực: SID=DQAAAPMAAABoESaB7JK9JO0HA_eIboilyGYHusGp-
foFoMhIcoqGW14kIzN2Z8cIPHyAPodArKFPOZh8Nus_cLvSTskfYEqB-2UMbDFwTPqC3JF8OrOKq67MplcP7Q7YPfGU7XCwkaQYO9OCdrbSbtRYMK-GFognkBbPWwakQ-Mo-ffwrj1WABLz43MLWB98YQ4CHlomx7_ArQr3nvyXNiK81npMxvLU_BIah8xwWaozFgBwXVLRCjTimJ465Db7FPmK3gfstvkKY20LwWXiwN01Oxnomcx0Hd5_FvDd4PS6WQ2JflCYznqQb1tlHGeL1m42LFM-Zf2XOpiclnnzVWc4hdI9dRWw
LSID=DQAAAPYAAAD_NZjd5nek3rsve8tKyudZg1b0D4ZXvLVdDwOHpbCB3Qh_pThOlEMaBBkfKvfJowPOo8unKOQgAiZLGMclpvoet93FiadurjHZjwKqMsyh30xSl108kwI1RSj2D-uxxU9BwATebzS2DYCBQszvzLcR6QynUg2SbRT1ACqxeGcG4fNxu0189TrA3M9Jt251THwo9jmoTmJn0w0oL08ISWg2dUWOjygRUEU_BCR3uegjOgtNIpahGZFDikuDRu2sWekkEe25AK9G1_Ran-IcjrGUW6nx_BzRRH-ASVLcokk7uUL7aYh-GXUpO8qGLNsIPM6M-SPtiMk6vJq1-hbj21cv
Auth=DQAAAPYAAABjE_bOy282mO6DhHEjU-p4RbJi8eu-1z4qVjWcrY21QjzDcDuNyxgelHgwXYuZTf051uO3InL3T7RF3eJv9GltrB2YEWY43zLl0JhBCAU7wtc5xOUBNO4fgtJ0utdD4f2ffQZ0gG0ENXtUwueIe8jJaurF7631lHQlb23VBKPJzaoOTH54RlaybLJAQZsSGbgJcmJqLsea1BiTZsvrTtyFkd2ayvLVVg3NXBUbTwfla5usoHv6ZF_ZRDTFcpzsbJDNVmiM6P5EhN1mV9wK-QHXyc4XTU5auJaStAl72crTuOohGtWJB58dHqi_btne8A3f2XaUK1VNKQg4cnUbgg_W
![Page 51: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/51.jpg)
51 2. Sử dụng dịch vụ
a . Gửi yêu cầu kèm theo mã xác thựchttps://www.google.com/cloudprint/submit?printerid=_google_doc_&title=TieuDe&ticket=aTicket&content=NoiDung&contentType=text/plain
Auth=DQAAAP…gg_W -> Kèm vào header
Application
Requests data with token
![Page 52: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/52.jpg)
52 2. Sử dụng dịch vụ
b . Nhận kết quả hồi đáp
ApplicationResponds
{ success = true, message = Đã thêm lệnh in., xsrf_token = AIp06DiRHVMG46e5mcUfn5vjPbEUESFJNw:1417706784605}
![Page 53: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/53.jpg)
53 2. Sử dụng dịch vụ
urlString=“https://www.google.com/cloudprint/submit?printerid=_google_doc_&title=TieuDe&ticket=aTicket&content=NoiDung&contentType=text/plain”
URL url = new URL(urlString);HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.addRequestProperty("X-CloudPrint-Proxy", SERVICE_SOURCE_NAME);connection.addRequestProperty("Authorization", "GoogleLogin auth=“ + Auth);// sau đó lấy hồi đáp về từ kết nối này
![Page 54: Google cloud print in android](https://reader031.vdocuments.site/reader031/viewer/2022013013/587692e81a28abab2f8b5e15/html5/thumbnails/54.jpg)
54
THANK YOU