集成服务端接口之前,请先确保已在开发者中心将服务器出口IP添加到个像白名单列表。
该接口为鉴权接口,在调用获取新画像接口之前,需先调用该接口进行鉴权,只有鉴权 成功的用户,才可以继续调用其他接口。
https://openapi-gi.getui.com/v2/{appid}/auth_sign
POST
参数名称 | 参数类型 | 备注 |
---|---|---|
sign | String | sha256(appKey+timeStamp+masterSecret) |
timestamp | Long | 生成sign的时间戳 |
请求参数JSON示例:
{
"sign": "ec6536dfad5e1554ab12f777da55f5de2f36db32db7002a4784601b5469d1567",
"timestamp": 1528855537000
}
成功:
{
"result": true,
"authtoken": "334a8e7abc96f15a99e9a2e796f7966f2737bee12e407ef534720fdbbccef073"
}
失败:
{
"error_info": {
"error_code": 304,
"error_msg": "IP受限"
}
}
鉴权生成的 authtoken 是有过期时间的,若 token 已过期,需重新进行鉴权。
查询目标用户的画像标签信息
https://openapi-gi.getui.com/v3/{appid}/query_tag
POST
参数名称 | 参数类型 | 备注 |
---|---|---|
token | String | 鉴权接口返回的authtoken |
userIdList | List | giuid列表 |
请求参数JSON示例:
{
"userIdList": [
"32e1d2b480sd772a5b16929c2bb4264a",
"41e1d2b48031772a5b16929c2bb4264b"
],
"token": "334a8e7abc96f15a99e9a2e796f7966f2737bee12e407ef534720fdbbccef073"
}
{
"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 最大可同时上传 200 个 userIdList。
code:画像标签编码(标签编码对照表详见资料包)
weight:画像标签权重(1:高,2:中,3:低),没有weight则表示此标签无画像权重。
错误码 | 说明 |
---|---|
0 | 成功 |
102 | 参数格式错误 |
105 | 暂无画像 |
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 | 其他错误 |
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);
}
}
以上文档对您是否有帮助?