Bạn không bắt buộc phải triển khai máy chủ. Sử dụng dịch vụ Mã nhận dạng phiên bản nếu bạn muốn thực hiện các thao tác sau:
- Nhận thông tin về các phiên bản ứng dụng. Xác minh mã thông báo ứng dụng hoặc tìm hiểu thêm thông tin về phiên bản ứng dụng đã tạo mã thông báo.
- Tạo bản đồ mối quan hệ cho các phiên bản ứng dụng. Tạo mối quan hệ giữa các thực thể và phiên bản ứng dụng.
- Tạo mã thông báo đăng ký cho mã thông báo APNs. API này cho phép bạn nhập hàng loạt mã thông báo APNs hiện có, liên kết các mã thông báo đó với mã thông báo đăng ký hợp lệ cho FCM.
Nhận thông tin về các phiên bản ứng dụng
Để nhận thông tin về một phiên bản ứng dụng, hãy gọi dịch vụ Instance ID tại điểm cuối này, cung cấp mã thông báo của phiên bản ứng dụng như minh hoạ:
https://iid.googleapis.com/iid/info/IID_TOKEN
Thông số
Authorization: Bearer <access_token>
. Đặt tham số này trong tiêu đề. Thêm một mã thông báo OAuth2 có thời hạn ngắn làm giá trị của tiêu đềAuthorization
. Để biết thêm thông tin về cách lấy mã thông báo này, hãy xem phần Cung cấp thông tin xác thực theo cách thủ công.access_token_auth: true
. Đặt tham số này trong tiêu đề.- [không bắt buộc] boolean
details
: đặt tham số truy vấn này thànhtrue
để nhận thông tin đăng ký chủ đề FCM (nếu có) được liên kết với mã thông báo này. Khi không được chỉ định, giá trị mặc định sẽ làfalse
.
Kết quả
Khi thành công, lệnh gọi sẽ trả về trạng thái HTTP 200 và một đối tượng JSON chứa:
application
– tên gói được liên kết với mã thông báo.authorizedEntity
– projectId được phép gửi đến mã thông báo.applicationVersion
– phiên bản của ứng dụng.platform
– trả vềANDROID
,IOS
hoặcCHROME
để cho biết nền tảng thiết bị mà mã thông báo thuộc về.
Nếu bạn đặt cờ details
:
rel
– mối quan hệ liên kết với mã thông báo. Ví dụ: danh sách các lượt đăng ký chủ đề.
Ví dụ về yêu cầu GET
https://iid.googleapis.com/iid/info/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA
Content-Type:application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
access_token_auth: true
Ví dụ về kết quả
HTTP 200 OK
{
"application":"com.iid.example",
"authorizedEntity":"123456782354",
"platform":"Android",
"rel":{
"topics":{
"topicname1":{"addDate":"2015-07-30"},
"topicname2":{"addDate":"2015-07-30"},
"topicname3":{"addDate":"2015-07-30"},
"topicname4":{"addDate":"2015-07-30"}
}
}
}
Tạo bản đồ mối quan hệ cho các phiên bản ứng dụng
Instance ID API cho phép bạn tạo bản đồ mối quan hệ cho các thực thể ứng dụng. Ví dụ: bạn có thể liên kết một mã thông báo đăng ký với một chủ đề FCM, đăng ký phiên bản ứng dụng vào chủ đề đó. API này cung cấp các phương thức để tạo những mối quan hệ như vậy theo cách riêng lẻ và hàng loạt.
Tạo mối quan hệ ánh xạ cho một phiên bản ứng dụng
Với mã thông báo đăng ký và mối quan hệ được hỗ trợ, bạn có thể tạo một mối liên kết. Ví dụ: bạn có thể đăng ký một phiên bản ứng dụng vào một chủ đề FCM bằng cách gọi dịch vụ Mã nhận dạng phiên bản tại điểm cuối này, cung cấp mã thông báo của phiên bản ứng dụng như minh hoạ:
https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME
Thông số
Authorization: Bearer <access_token>
. Đặt tham số này trong tiêu đề. Thêm một mã thông báo OAuth2 có thời hạn ngắn làm giá trị của tiêu đềAuthorization
. Để biết thêm thông tin về cách lấy mã thông báo này, hãy xem phần Cung cấp thông tin xác thực theo cách thủ công.access_token_auth: true
. Đặt tham số này trong tiêu đề.
Kết quả
Khi thành công, lệnh gọi sẽ trả về trạng thái HTTP 200.
Ví dụ về yêu cầu POST
https://iid.googleapis.com/iid/v1/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA/rel/topics/movies
Content-Type:application/json
Content-Length: 0
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
access_token_auth: true
Ví dụ về kết quả
HTTP 200 OK
{}
Quản lý bản đồ mối quan hệ cho nhiều phiên bản ứng dụng
Bằng cách sử dụng các phương thức hàng loạt của dịch vụ Instance ID, bạn có thể thực hiện việc quản lý hàng loạt các phiên bản ứng dụng. Ví dụ: bạn có thể thực hiện thao tác thêm hoặc xoá hàng loạt các thực thể ứng dụng vào một chủ đề FCM. Để cập nhật tối đa 1.000 phiên bản ứng dụng cho mỗi lệnh gọi API, hãy gọi dịch vụ Instance ID tại điểm cuối này, cung cấp mã thông báo phiên bản ứng dụng trong phần nội dung JSON:
https://iid.googleapis.com/iid/v1:batchAdd
https://iid.googleapis.com/iid/v1:batchRemove
Thông số
Authorization: Bearer <access_token>
. Đặt tham số này trong tiêu đề. Thêm một mã thông báo OAuth2 có thời hạn ngắn làm giá trị của tiêu đềAuthorization
. Để biết thêm thông tin về cách lấy mã thông báo này, hãy xem phần Cung cấp thông tin xác thực theo cách thủ công.access_token_auth: true
. Đặt tham số này trong tiêu đề.to
: Tên chủ đề.registration_tokens
: Mảng mã thông báo IID cho các phiên bản ứng dụng mà bạn muốn thêm hoặc xoá.
Kết quả
Khi thành công, lệnh gọi sẽ trả về trạng thái HTTP 200. Kết quả trống cho biết bạn đã đăng ký mã thông báo thành công. Đối với những lượt đăng ký không thành công, kết quả sẽ chứa một trong các mã lỗi sau:
- NOT_FOUND – Mã thông báo đăng ký đã bị xoá hoặc ứng dụng đã bị gỡ cài đặt.
- INVALID_ARGUMENT – Mã thông báo đăng ký bạn cung cấp không hợp lệ đối với Mã nhận dạng người gửi.
- INTERNAL – Máy chủ phụ trợ không hoạt động vì lý do không xác định. Thử gửi lại yêu cầu.
- TOO_MANY_TOPICS – Số lượng chủ đề trên mỗi phiên bản ứng dụng quá nhiều.
- RESOURCE_EXHAUSTED – Có quá nhiều yêu cầu đăng ký hoặc huỷ đăng ký trong một khoảng thời gian ngắn. Thử lại với thời gian đợi luỹ thừa.
Ví dụ về yêu cầu POST
https://iid.googleapis.com/iid/v1:batchAdd
Content-Type:application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
access_token_auth: true
{
"to": "/topics/movies",
"registration_tokens": ["nKctODamlM4:CKrh_PC8kIb7O...", "1uoasi24:9jsjwuw...", "798aywu:cba420..."],
}
Ví dụ về kết quả
HTTP 200 OK
{
"results":[
{},
{"error":"NOT_FOUND"},
{},
]
}
Tạo mã đăng ký cho mã thông báo APNs
Bằng cách sử dụng phương thức batchImport
của dịch vụ Instance ID, bạn có thể nhập hàng loạt mã thông báo APNs hiện có trên iOS vào Giải pháp gửi thông báo qua đám mây của Firebase, liên kết các mã thông báo đó với mã thông báo đăng ký hợp lệ. Gọi dịch vụ Mã nhận dạng phiên bản tại điểm cuối này, cung cấp danh sách mã thông báo APNs trong nội dung JSON:
https://iid.googleapis.com/iid/v1:batchImport
Phần nội dung phản hồi chứa một mảng mã thông báo đăng ký mã nhận dạng phiên bản đã sẵn sàng để dùng gửi thông báo FCM đến mã thông báo thiết bị APNs tương ứng.
Thông số
Authorization: Bearer <access_token>
. Đặt tham số này trong tiêu đề. Thêm một mã thông báo OAuth2 có thời hạn ngắn làm giá trị của tiêu đềAuthorization
. Để biết thêm thông tin về cách lấy mã thông báo này, hãy xem phần Cung cấp thông tin xác thực theo cách thủ công.access_token_auth: true
. Đặt tham số này trong tiêu đề.application
: Mã nhận dạng gói của ứng dụng.sandbox
: Giá trị boolean cho biết môi trường hộp cát (TRUE) hoặc môi trường sản xuất (FALSE)apns_tokens
: Mảng mã thông báo APN cho các phiên bản ứng dụng mà bạn muốn thêm hoặc xoá. Tối đa 100 mã thông báo cho mỗi yêu cầu.
Kết quả
Khi thành công, lệnh gọi sẽ trả về trạng thái HTTP 200 và một nội dung kết quả JSON. Đối với mỗi mã thông báo APNs được cung cấp trong yêu cầu, danh sách kết quả sẽ bao gồm:
- Mã thông báo APNs.
- Trạng thái. OK hoặc thông báo lỗi mô tả lỗi.
- Để có kết quả thành công, mã thông báo đăng ký mà FCM liên kết với mã thông báo APNs.
Ví dụ về yêu cầu POST
https://iid.googleapis.com/iid/v1:batchImport
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA
access_token_auth:true
{
"application": "com.google.FCMTestApp",
"sandbox":false,
"apns_tokens":[
"368dde283db539abc4a6419b1795b6131194703b816e4f624ffa12",
"76b39c2b2ceaadee8400b8868c2f45325ab9831c1998ed70859d86"
]
}
Ví dụ về kết quả
HTTP 200 OK
{
"results":[
{
"apns_token": "368dde283db539abc4a6419b1795b6131194703b816e4f624ffa12",
"status": "OK",
"registration_token":"nKctODamlM4:CKrh_PC8kIb7O...clJONHoA"
},
{
"apns_token": "76b39c2b2ceaadee8400b8868c2f45325ab9831c1998ed70859d86",
"status":"Internal Server Error"
},
]
}
Phản hồi lỗi
Các lệnh gọi đến API máy chủ Instance ID sẽ trả về các mã lỗi HTTP sau:
HTTP status 400 (Bad request)
– thiếu hoặc có tham số yêu cầu không hợp lệ. Kiểm tra thông báo lỗi để biết thông tin chi tiết.HTTP status 401 (Unauthorized)
– tiêu đề uỷ quyền không hợp lệ.HTTP status 403 (Forbidden)
– tiêu đề uỷ quyền không khớp vớiauthorizedEntity
.HTTP status 404 (Not found)
– Đường dẫn HTTP không hợp lệ hoặc không tìm thấy mã thông báo IID. Kiểm tra thông báo lỗi để biết thông tin chi tiết.HTTP status 503 (Service unavailable)
– dịch vụ không hoạt động. Thử lại yêu cầu bằng thuật toán thời gian đợi luỹ thừa.