Skip to content

onGetUserProfile

获取用户敏感信息

该方法用于获取原APP用户敏感信息。主要用途是:为游戏提供APP敏感用户信息。


方法声明

java
/**
 * 当 SDK 请求获取用户详细资料(User Profile)时触发。
 * 通常涉及比基本信息更详细的字段,如性别、地区、实名状态等。
 *
 * @param handle   用于向 SDK 返回处理结果的状态句柄。
 * @param dataJson 包含请求详细属性列表的 JSON 字符串。
 */
void onGetUserProfile(SUDOPStateHandle handle, String dataJson);

运行行为

  • 按需触发:当玩家在游戏内点击查看详细个人名片、或者游戏需要根据性别分配初始角色/皮肤时,引擎会发起此请求。
  • 字段声明dataJson 中通常会指明游戏具体需要的字段(例如 ["gender", "region"]),App 侧应根据这些字段进行精准返回。
  • 权限校验:App 可以在此方法中加入隐私逻辑(例如:如果玩家设置了个人资料不可见,则不返回具体数据或返回脱敏后的数据)。
  • 异步闭环:由于详细资料可能存储在不同的业务服务器,App 可以在获取所有字段后,通过 handle.success(resultJson) 统一回传。

代码示例

实现详细资料的按需组装与回传:

java
@Override
public void onGetUserProfile(SUDOPStateHandle handle, String dataJson) {
    try {
        
        JSONObject profile = new JSONObject();
        profile.put(SUDOP.KEY_USER_ID, userId);
        
        // 根据业务逻辑填充详细字段
        profile.put("gender", "male");       // 性别
        profile.put("region", "Shanghai");  // 地区信息
        // ... 
        // 3. 回传结果
        handle.success(profile.toString());

    } catch (Exception e) {
        // 异常处理,通知 SDK 请求失败
        handle.fail("unkonwn error");
    }
}

注意事项

  • 数据一致性:确保返回的 userId 与请求中的 ID 一致,避免数据串位。
  • 字段规范:除了 SUDOP 预定义的常量字段外,若游戏有自定义扩展字段需求,需与游戏开发者约定好 JSON 的 Key 名。
  • 非强制性:并非所有游戏都会调用此接口,如果游戏仅需要头像和昵称,通常只会触发 onGetUserInfo