菜单

接口请求协议

一、请求说明

1、接口对大小写敏感

2、接口的请求需要生成正确的 sign 后才能成功调用

 

二、公共请求参数

1、Headers

参数 传值 必填
Content-Type application/json Y

 
2、Body
参数 类型 必填 说明
client_id string Y 向公司管理员或子管理员获取。请确保已开通Open API权限
timestamp int Y 请求时的unix时间戳
sign string Y md5(client_secret+timestamp)
…… …… …… 其他参数
 
 
3、请求示例
{
    "client_id": "xxx",
    "timestamp": 1608776690,
     "sign": "05d481dc241a7a1daa5b2a7fa2b51dc5",
    "...": "..."
}

 

三、Sign生成逻辑

1、在请求参数中传入 client_id, timestamp, sign 来通过认证,sign 由 client_secret, timestamp 根据加密规则生成

2、加密规则是 md5(client_secret + timestamp)

3、timestamp 有效期默认为30s,超过30s的话会报接口超时

4、上述所提到的 client_id、client_secret 需要向公司管理员或子管理员获取,页面入口在XMP后台右上角的个人信息卡片:

 

四、Sign生成示例代码

1、java示例

import org.apache.commons.codec.digest.DigestUtils;

public static String getSign(String clientSecret) {
	long timestamp = System.currentTimeMillis()/1000;
	String oriSign = clientSecret + timestamp;
	String sign = DigestUtils.md5Hex(oriSign);
	return sign;
}

 

2、python示例

import hashlib
import time

def get_sign(clientSecret):  
	timestamp = int(time.time())
	oriSign = clientSecret+str(timestamp)    
	encodeSign = str(oriSign).encode()  
	sign = hashlib.md5(encodeSign)
	return sign.hexdigest()

 

3、php示例

function getSign($clientSecret)
{
	$timestamp = time();
	$oriSign = $clientSecret . $timestamp;
	$sign = md5($oriSign);
	return $sign;
}

 

4、go示例

 import (
	"time"
	"strconv"
	"app/util/encrypt"
)

func getSign(clientSecret string) string {
	timestamp := time.Now().Unix()
	sign := encrypt.Md5(fmt.Sprintf("%s%s", clientSecret, strconv.FormatInt(timestamp, 10)))
	return sign

 



五、错误码说明

错误码 说明
0 success
-1 error
400001 请求参数错误

上一个
XMP Open API说明
下一个
广告报表API
最近修改: 2024-11-20Powered by