服务端接口文档

服务端接口文档

集成服务端接口之前,请先确保已在开发者中心将服务器出口IP添加到个像白名单列表。

鉴权接口

功能说明

该接口为鉴权接口,在调用获取新画像接口之前,需先调用该接口进行鉴权,只有鉴权 成功的用户,才可以继续调用其他接口。

URL

https://openapi-gi.getui.com/v2/{appid}/auth_sign

HTTP请求方式

POST

请求参数

参数名称 参数类型 备注
sign String sha256(appKey+timeStamp+masterSecret)
timestamp Long 生成sign的时间戳

请求参数JSON示例:

{
    "sign": "ec6536dfad5e1554ab12f777da55f5de2f36db32db7002a4784601b5469d1567",
    "timestamp": 1528855537000
}

JSON返回示例

成功:

{
    "result": true,
    "authtoken": "334a8e7abc96f15a99e9a2e796f7966f2737bee12e407ef534720fdbbccef073"
}

失败:

{
    "error_info": {
        "error_code": 304,
        "error_msg": "IP受限"
    }
}

鉴权生成的 authtoken 是有过期时间的,若 token 已过期,需重新进行鉴权。

画像查询接口

功能说明

查询目标用户的画像标签信息

URL

https://openapi-gi.getui.com/v3/{appid}/query_tag

HTTP请求方式

POST

请求参数

参数名称 参数类型 备注
token String 鉴权接口返回的authtoken
userIdList List giuid列表

请求参数JSON示例:

{
    "userIdList": [
        "32e1d2b480sd772a5b16929c2bb4264a""41e1d2b48031772a5b16929c2bb4264b"
    ],
    "token": "334a8e7abc96f15a99e9a2e796f7966f2737bee12e407ef534720fdbbccef073"
}

JSON返回示例

{
    "userTag": [
        {
            "error_code": 0,
            "userId": "32e1d2b480sd772a5b16929c2bb4264a",
            "tags": [
                {
                    "code": "010wyq00",
                    "weight": 3
                },
                {
                    "code": "010wyi00",
                    "weight": 1
                },
                {
                    "code": "010wyq00",
                    "weight": 3
                },
                {
                    "code": "010eq000"
                },
                {
                    "code": "010wq000",
                    "weight": 1
                },
                {
                    "code": "010wyr00",
                    "weight": 2
                },
                {
                    "code": "010iri",
                    "weight": 1
                },
                {
                    "code": "c33000000"
                }
            ]
        },
        {
            "error_msg": "用户暂无画像",
            "error_code": 105,
            "userId": "41e1d2b48031772a5b16929c2bb4264b"
        }
    ]
}

userIdList 最大可同时上传 1000 个 userIdList。

code:画像标签编码(标签编码对照表详见资料包

weight:画像标签权重(1:高,2:中,3:低),没有weight则表示此标签无画像权重。

错误码

错误码 说明
0 成功
102 参数格式错误
105 GIUID验证失败
106 IP 白名单鉴权失败
107 IP 白名单鉴权异常
109 查询用户画像失败
112 用户暂无画像
302 token 已过期
303 获取用户相关信息失败
304 IP 受限
305 一分钟内获取画像频次超限
307 一天内获取画像总量超限
308 APPID 不匹配
309 APPID 和 APPKEY 不匹配
310 画像接口每分钟最大量超限
311 不是老用户,不能调用该接口
400 生成鉴权 token 失败
401 鉴权频次超限
402 鉴权一分钟请求总量超限
403 鉴权异常
404 验证 sign 失败
500 无此接口
501 未传 APPID
502 未知应用
503 其他错误

Demo示例

获取token

public class AuthSignTest {
    static String url = " https://openapi-gi.getui.com/v2/{appid}/auth_sign";

    public static void main(String[] args) throws Exception {
        URL urlObj = new URL(url);
        URLConnection con = urlObj.openConnection();
        HttpURLConnection httpURLConnection = (HttpURLConnection) con;
        // http 头部
        httpURLConnection.setRequestMethod("POST");
        httpURLConnection.setDoOutput(true);
        httpURLConnection.setRequestProperty("Content-Type", "text/html;charset=UTF-8");
        Long timestamp = System.currentTimeMillis();

        // 在个像开发者中心获取的 app 对应的 key,可自行替换
        String appkey = "GH4u6fBaYqABoG7bgwAkn5";
        String masterSecret = "iMPZBVYZYPAfyZSnWVsAs";
        // sha256 加密,使用 org.apache.commons 包中自带的加密方法,需将加密后数据一 起上传
        String sign = DigestUtils.sha256Hex(String.format("%s%d%s", appkey, timestamp, masterSecret));

        JSONObject requestDataObject = new JSONObject();
        requestDataObject.put("sign", sign);
        requestDataObject.put("timestamp", timestamp);
        // 建立连接,将数据写入内存
        DataOutputStream out = new DataOutputStream(httpURLConnection.getOutputStream());
        out.writeBytes(requestDataObject.toString());
        out.flush();
        out.close();

        BufferedReader in = null;
        String result = "";
        // 将数据发送给服务端,并获取返回结果
        in = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));
        String line;
        while ((line = in.readLine()) != null) {
            result += line;
        }
        System.out.println(result);
    }
}

查询用户画像

public class GetUserTagTest {
    static String url = " https://openapi-gi.getui.com/v3/{appid}/query_tag";

    public static void main(String[] args) throws Exception {
        URL urlObj = new URL(url);
        URLConnection con = urlObj.openConnection();
        HttpURLConnection httpURLConnection = (HttpURLConnection) con;
        // http 头部
        httpURLConnection.setRequestMethod("POST");
        httpURLConnection.setDoOutput(true);
        httpURLConnection.setRequestProperty("Content-Type", "text/html;charset=UTF-8");
        // 需上传的参数,userIdList和token,token为鉴权成功后返回的字符串
        JSONObject requestDataObject = new JSONObject();
        List<String> userList = new ArrayList<String>();
        userList.add("b154c3fb51c213cbfb25edee3b55d127");
        userList.add("124587587853829478436231112");
        requestDataObject.put("token", "cb2b16456ba3943f19ed0b54e8902b53db2aa288a2e4d56ae88aff93e0f94eef");
        requestDataObject.put("userIdList", userList);

        // 建立连接,将数据写入内存缓冲区
        DataOutputStream out = new DataOutputStream(httpURLConnection.getOutputStream());
        out.writeBytes(requestDataObject.toString());
        out.flush();
        out.close();

        // 发送数据给个像服务端,并获得返回结果 
        BufferedReader in = null;
        String result = "";
        in = new BufferedReader(new InputStreamReader(
                httpURLConnection.getInputStream()));
        String line;
        while ((line = in.readLine()) != null) {
            result += line;
        }
        System.out.println(result);
    }
}

文档中心搜索