PHP如何调用百分点AI_传用户画像调推荐模型得列表【稳招】

百分点AI接口必须走官方SDK或按约定签名规则发起POST请求,否则返回401或Invalid signature;签名需用HMAC-SHA256对raw body计算,严格要求timestamp(毫秒)、nonce(16位小写+数字)、body MD5拼接格式;Header须含X-BP-App-Key、X-BP-Signature等,Content-Type为application/json;user_profile至少含age、gender等有效标签,空profile报错。

php如何调用百分点ai_传用户画像调推荐模型得列表【稳招】

PHP调用百分点AI接口传用户画像的正确姿势

直接结论:百分点AI的推荐模型接口不是开放HTTP服务,必须走其官方SDK或按约定签名规则发起POST请求;不签名、不带X-BP-App-KeyX-BP-Signature头,100%返回401 UnauthorizedInvalid signature错误。

构造签名时最容易漏掉的三个细节

百分点要求对请求体(raw body)做HMAC-SHA256签名,且参与签名的字段顺序、编码、拼接方式极其严格。常见翻车点:

  • timestamp 必须是当前毫秒时间戳(不是秒),且要参与签名字符串拼接
  • nonce 必须是16位随机小写字母+数字组合(不能含大写或符号),重复使用会触发限流
  • 签名原文格式为:app_key={key}&nonce={n}×tamp={t}&body={md5(body)},其中body是原始JSON字符串的MD5(32位小写),不是JSON对象本身

PHP中用cURL发请求的关键参数配置

不用SDK时,必须手动设置Header和Body格式。注意Content-Type必须为application/json; charset=utf-8,且body不能经过json_encode()二次转义(即不能把已转义的字符串再encode一次)。

curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json; charset=utf-8',
    'X-BP-App-Key: your_app_key_here',
    'X-BP-Signature: ' . $signature . '',
    'X-BP-Timestamp: ' . $timestamp . '',
    'X-BP-Nonce: ' . $nonce . ''
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $raw_json_body); // 注意:这里是字符串,不是数组

用户画像数据结构必须匹配百分点schema

user_profile字段时,不能只塞手机号或ID。必须包含至少一项有效标签,比如agegendercityinterests(数组)、recent_browse(数组)等。空profile或只有user_id会导致返回empty profile错误。

Figma Slides

Figma Slides

Figma Slides 是 Figma 发布的PPT制作和演示文稿生成工具,可以帮助创建、设计、定制和分享演示文稿

下载

立即学习PHP免费学习笔记(深入)”;

示例合法片段:

{
  "user_id": "u_123456",
  "user_profile": {
    "age": 28,
    "gender": "male",
    "city": "beijing",
    "interests": ["tech", "sports"],
    "recent_browse": ["item_789", "item_456"]
  },
  "scene": "home_feed",
  "size": 10
}

签名逻辑和字段校验是整个链路最脆弱的一环,哪怕nonce多一个字符、timestamp差500ms、body里多一个空格,都会让签名失败——而错误提示往往只说“invalid”,不会告诉你哪错了。

https://www.php.cn/faq/1976622.html

发表回复

Your email address will not be published. Required fields are marked *