Chuyển tới nội dung chính

Bắt đầu hỗ trợ ở phiên bản:

  • SDK: 2.34.0
  • Android: 23.12.02 (724)
  • IOS: 23.12.02 (573)
import { authorize } from "zmp-sdk/apis";

Cấp quyền sử dụng API

Một số API cần sự cho phép của người dùng trước khi có thể được gọi. Các API này được chia thành nhiều phạm vi (Scope) tương ứng với từng mục đích sử dụng, mô tả chi tiết tham khảo bảng Scopes:

ScopeCorresponding APIsDescription
scope.userInfogetUserInfoThông tin user (tên, avatar...)
scope.userLocationgetLocationThông tin vị trí user
scope.userPhonenumbergetPhoneNumberSố điện thoại

Khi một API như vậy được gọi:

  • Nếu người dùng chưa chấp nhận hoặc từ chối, một cửa sổ pop-up sẽ xuất hiện để hỏi người dùng có muốn chấp nhận không. API chỉ có thể được gọi sau khi người dùng bấm chấp nhận.
  • Nếu người dùng đã chấp nhận cho phép, API có thể được gọi trực tiếp.
  • Nếu người dùng từ chối cho phép, callback lỗi sẽ được trả về.

Developer có thể sử dụng API này để chủ động khởi tạo yêu cầu cấp quyền đối với người dùng khi cần, hỗ trợ xin tối đa 3 quyền (đã bao gồm quyền Thông tin user):

Multi_API_Request

Lấy trạng thái của scope

Developer có thể sử dụng API getSetting để lấy trạng thái cho phép hiện tại của người dùng.

Quản lý cấp/thu hồi quyền cho người dùng

Developer có thể gọi API openPermissionSetting để mở cài đặt và hướng dẫn người dùng bật/tắt cho phép API.

permission_settings

Thời gian hiệu lực

Sau khi user đồng ý hoặc từ chối cấp quyền, trạng thái cấp quyền sẽ được ghi nhận và đồng bộ cho những lần sử dụng sau này.

Best Practices

  • Chỉ khởi tạo yêu cầu cấp quyền khi cần thiết, giải thích rõ ràng lý do tại sao bạn muốn sử dụng nó trong yêu cầu cấp quyền.
  • Sử dụng API getSetting trước để lấy trạng thái cho phép hiện tại của người dùng, sau đó yêu cầu xin cấp thêm các quyền còn thiếu.

Ví dụ

Khởi tạo cấp quyền

try {
const data = await authorize({
scopes: ["scope.userLocation", "scope.userPhonenumber"],
});
console.log(data["scope.userLocation"]); // `true` nếu người dùng đồng ý cấp vị trí
console.log(data["scope.userPhonenumber"]); // `true` nếu người dùng đồng ý cấp số điện thoại
} catch (error) {
const code = (error as AppError).code;
if (code === -201) {
console.log("Người dùng đã từ chối cấp quyền");
} else {
console.log("Lỗi khác");
}
}
Xem hướng dẫn xử lý lỗi và bảng mô tả chi tiết mã lỗi tại đây.

Tham số

Truyền tham số vào API dưới dạng object chứa các thuộc tính:

NameTypeDefaultDescription
scopesstring[]

Danh sách các quyền cần được cấp, tham khảo bảng Scopes.

Kết quả trả về

API trả về Promise<Scopes> chứa chứa các trạng thái của các quyền được cấp.

Scopes

NameTypeDefaultDescription
scope.userInfoboolean

Trạng thái quyền thông tin user.

scope.userLocationboolean

Trạng thái quyền vị trí user.

scope.userPhonenumberboolean

Trạng thái quyền số điện thoại.

miniapp-logo

Khám phá