【问题标题】:Gigya ids.setAccountInfo error Schema validation failedGigya ids.setAccountInfo 错误 架构验证失败
【发布时间】:2015-08-13 20:33:57
【问题描述】:

我正在尝试设置帐户数据
我使用 ids.setAccountInfo

            GSObject param = new GSObject();
            GSObject profile = new GSObject();
            param.put("UID", user.getString("UID"));
            profile.put("firstName", "FirstName");
            param.put("profile", profile);
            GSAPI.getInstance().sendRequest("ids.setAccountInfo", param, new GSResponseListener() {
                @Override
                public void onGSResponse(String s, GSResponse gsResponse, Object o) {
                    Log.d("ids.setAccountInfo", "----------------------------");
                    Log.d("ids.setAccountInfo", "s " + s);
                    Log.d("ids.setAccountInfo", "gsResponse " + gsResponse);
                    Log.d("ids.setAccountInfo", "----------------------------");
                }
            }, null);

并有回应

    errorCode:400006
errorMessage:Invalid parameter value
errorDetails:Schema validation failed
data:{"validationErrors":[{"message":"write access mode violation","fieldName":"profile.firstName","errorCode":400025}],"statusCode":400,"errorMessage":"Invalid parameter value","time":"2015-08-13T11:48:14.664Z","errorDetails":"Schema validation failed","statusReason":"Bad Request","errorCode":400006,"callId":"e0ed6aebea144323b095849ae3ed40ee"}

如果我发送空配置文件或不发送则成功

errorCode:0
errorMessage:null
errorDetails:null
data:{"statusCode":200,"errorCode":0,"time":"2015-08-13T11:53:19.738Z","callId":"e59b00cd09bf48a398586219f817930d","statusReason":"OK"}

【问题讨论】:

    标签: android gigya


    【解决方案1】:

    由于对 ids.setAccountInfo 的调用是从客户端完成的(假设使用了 android SDK),而这些字段的写入权限的配置文件架构是“serverOnly”或“clientCreate”。为了使其正常工作,这些字段需要具有“clientModify”写入权限。

    使用ids.getSchema 获取架构并查看字段写入权限。

    可以通过调用ids.setSchema 来更改它,查看链接了解更多详情。

    writeAccess - 指定是否允许未签名的请求写入该字段。此属性适用于使用 ids.getAccountInfo 方法或通过使用 Screen-Set 设置字段时。支持的值为:

    • “serverOnly”(默认)- 只允许来自服务器的签名请求。
    • "clientCreate" - 允许来自客户端的未签名请求写入此字段,前提是之前未设置。
    • "clientModify" - 允许来自客户端的未签名请求写入此字段并修改现有值。

    【讨论】:

      猜你喜欢
      • 2018-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      • 1970-01-01
      相关资源
      最近更新 更多