Tham chiếu máy chủ

Không bắt buộc phải triển khai máy chủ. Sử dụng dịch vụ Mã thực thể 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

Để lấy thông tin về một thực thể ứng dụng, hãy gọi dịch vụ mã nhận dạng thực thể tại điểm cuối này, cung cấp mã thông báo của thực thể ứng dụng đó như sau:

 https://iid.googleapis.com/iid/info/IID_TOKEN

Tham số

  • Authorization: Bearer <access_token>. Đặt tham số này trong tiêu đề. Thêm mã thông báo OAuth2 ngắn hạn làm giá trị của tiêu đề Authorization. Để biết thêm thông tin về cách nhận mã thông báo này, hãy xem phần Cung cấp thông tin đăng nhập theo cách thủ công.
  • access_token_auth: true. Đặt tham số này trong tiêu đề.
  • Boolean [không bắt buộc] details: đặt tham số truy vấn này thành true để lấy thông tin về gói đă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 là false.

Kết quả

Khi thành công, lệnh gọi sẽ trả về trạng thái HTTP 200 và đối tượng JSON chứa:

  • application – tên gói liên kết với mã thông báo.
  • authorizedEntity – projectId được uỷ quyền gửi mã thông báo.
  • applicationVersion – phiên bản của ứng dụng.
  • appSigner – Vân tay số sha1 cho chữ ký áp dụng cho gói. Cho biết bên nào đã ký ứng dụng. Ví dụ: Play Store.
  • platform – trả về ANDROID, IOS hoặc CHROME để cho biết nền tảng thiết bị chứa mã thông báo.

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 gói thuê bao theo 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

Kết quả mẫu

HTTP 200 OK
{
  "application":"com.iid.example",
  "authorizedEntity":"123456782354",
  "platform":"Android",
  "appSigner":"1a2bc3d4e5"
  "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 thực thể ứ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ã thông báo đăng ký với một chủ đề FCM bằng cách đăng ký thực thể ứng dụng với chủ đề đó. API này cung cấp các phương thức để tạo các mối quan hệ như vậy cả riêng lẻ và hàng loạt.

Tạo mối liên kết quan hệ cho một thực thể ứ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ối liên kết. Ví dụ: bạn có thể đăng ký một phiên bản ứng dụng theo chủ đề FCM bằng cách gọi dịch vụ Mã 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ư sau:

 https://iid.googleapis.com/iid/v1/IID_TOKEN/rel/topics/TOPIC_NAME

Tham số

  • Authorization: Bearer <access_token>. Đặt tham số này trong tiêu đề. Thêm mã thông báo OAuth2 ngắn hạn làm giá trị của tiêu đề Authorization. Để biết thêm thông tin về cách nhận mã thông báo này, hãy xem phần Cung cấp thông tin đăng nhập 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

Kết quả mẫu

HTTP 200 OK
{}

Quản lý sơ đồ mối quan hệ cho nhiều phiên bản ứng dụng

Khi sử dụng các phương thức xử lý hàng loạt của dịch vụ Mã phiên bản, bạn có thể thực hiện việc quản lý hàng loạt các thực thể ứng dụng. Ví dụ: bạn có thể thực hiện thêm hoặc xoá hàng loạt các phiên bản ứng dụng khỏi một chủ đề FCM. Để cập nhật tối đa 1000 thực thể ứng dụng cho mỗi lệnh gọi API, hãy gọi dịch vụ mã thực thể tại điểm cuối này, cung cấp mã thông báo thực thể ứng dụng trong nội dung JSON:

 https://iid.googleapis.com/iid/v1:batchAdd

 https://iid.googleapis.com/iid/v1:batchRemove

Tham số

  • Authorization: Bearer <access_token>. Đặt tham số này trong tiêu đề. Thêm mã thông báo OAuth2 ngắn hạn làm giá trị của tiêu đề Authorization. Để biết thêm thông tin về cách nhận mã thông báo này, hãy xem phần Cung cấp thông tin đăng nhập 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 thực thể ứ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. Nếu không có kết quả nào thì nghĩa là mã thông báo đã đăng ký thành công. Đối với các gói thuê bao 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_PRICE — Mã thông báo đăng ký được cung cấp không hợp lệ đối với ID người gửi.
  • NỘI BỘ — Máy chủ phụ trợ gặp sự cố vì lý do không xác định. Thử gửi lại yêu cầu.
  • TOO_MANY_TOPICS — Số lượng chủ đề quá mức cho mỗi phiên bản ứng dụng.
  • Resources_EXHAUSTED — 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..."],
}

Kết quả mẫu

HTTP 200 OK
{
  "results":[
    {},
    {"error":"NOT_FOUND"},
    {},
  ]
}

Tạo mã thông báo đăng ký cho mã thông báo APN

Bằng cách sử dụng phương thức batchImport của dịch vụ mã phiên bản, bạn có thể nhập hàng loạt mã thông báo APN iOS hiện có vào Giải pháp gửi thông báo qua đám mây của Firebase, ánh xạ các mã đó tới mã thông báo đăng ký hợp lệ. Gọi dịch vụ mã nhận dạng thực thể tại điểm cuối này, cung cấp danh sách mã thông báo APN trong nội dung JSON:

 https://iid.googleapis.com/iid/v1:batchImport

Nội dung phản hồi chứa một mảng mã thông báo đăng ký ID 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ị APN tương ứng.

Tham số

  • Authorization: Bearer <access_token>. Đặt tham số này trong tiêu đề. Thêm mã thông báo OAuth2 ngắn hạn làm giá trị của tiêu đề Authorization. Để biết thêm thông tin về cách nhận mã thông báo này, hãy xem phần Cung cấp thông tin đăng nhập 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 : Boolean để biểu thị môi trường hộp cát (TRUE) hoặc phiên bản chính thức (FALSE)
  • apns_tokens : Mảng mã thông báo APN cho các thực thể ứ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à nội dung kết quả JSON. Đối với mỗi mã thông báo APN được cung cấp trong yêu cầu, danh sách kết quả sẽ bao gồm:

  • Mã thông báo APN.
  • Trạng thái. OK hoặc một 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 ánh xạ với mã thông báo APN.

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"
   ]
}

Kết quả mẫu

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ủ mã nhận dạng thực thể sẽ trả về các mã lỗi HTTP sau đây:

  • HTTP status 400 (Bad request) – tham số yêu cầu bị thiếu hoặc không hợp lệ. Hãy kiểm tra các 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ới authorizedEntity.
  • HTTP status 404 (Not found) – Không tìm thấy đường dẫn HTTP hoặc mã thông báo IID không hợp lệ. Hãy kiểm tra các 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ử yêu cầu lại bằng thuật toán thời gian đợi luỹ thừa.