最近接了个需求,是给公司做个用于手机淘宝的小页面,用到了手淘的几个接口。
在阅读文档时,发现手淘的JSSDK文档很有问题,和实际用起来差异很大,坑的我意识模糊。
就想写篇小笔记,抛砖引玉一下,给后来者有个小借鉴。
手淘JSSDK文档
我是用vue-cli直接搭的项目,基本都是默认选项,部分代码基于es6语法。
<script src="//g.alicdn/tmapp/tida2/2.2.16/tida.js?appkey=应用的前台appkey"></script>
注:EWS环境必须手动引用Tida!同时每个页面上的head里面加入 <meta name="spm-id" content="a1z51.互动应用前台appkey"/>开启数据统计功能复制代码
官方文档说得很清楚,调用JSSDK是要有前提的,必须是在手淘或者猫客App和*.jaeapp域名下,其实在天猫手机端也是可以调用的。
ady({// interactId:"", // 互动实列ID type string 若无抽奖模块,此参数无须传入。给错误的实例ID会走错误流程// module: [] // 应用所需要的模块。非必选,默认加载所有模块。支持的模块见注释。// sellerNick:"" // 商家名称// shopId:123 // 店铺ID 从url中取 可选
}, function(){// TODO
})复制代码
所有的接口调用前必须首先调用ready方法进行必要的初始化工作。
这里如果你没用到一些需要授权的接口,全部参数不填也可以,建议在app.vue里create钩子直接调用。
/*** 混淆nick** @memberOf Tida* @name mixNick* @function** @param {object} options 入参* @param {number} options.sellerNick 卖家昵称,微淘应用必填,互动应用选填* @param {function} callback 回调函数**/
var options = {sellerNick: "茵曼旗舰店"
};Tida.mixNick(options, function (data) {alert(JSON.stringify(data))
});复制代码
获取混淆nick就不用多说了,后台很多操作都需要这个nick。
额外提示一句,引入tida.js的时候如果Appkey填错,nick是无法获取的,这个接口是需要权限的,我当时调用一直失败,回调的报错也看不懂,后来换了Appkey才能调通。
Tida.itemFavor({itemId, // 商品ID 注意这里只能用stringaction: 'add'
}, data => {if (data) {if (Code === 0 || Code === '0') {ast('收藏成功!')} else if (Code === 3002 || Code === '3002' || Code === 'ALREADY_COLLECTION'){ast('您已收藏过此宝贝!')} else {ast('收藏宝贝失败了哦!')}}
})复制代码
商品的收藏回调文档没说清楚,这是我借鉴其他家的写法修改的。
Tida.follow({pubAccountId:'86428989' // 店铺或达人ID,sellerId:'86428989' // 卖家id,
}, function(data){});复制代码
这个接口在手淘的ios端老版本会出现无法调用的情况,安卓平台也有问题,总之最好别用。
Tida.shopFavor({shopId:'107922698' // 卖家店铺id,sellerId:'1917047079' // 卖家id,
}, function(data){console.log(data);
});复制代码
这个接口也有问题,不推荐用。
Tida.social({sellerId: Param('sellerId')||'2335371108',action: "follow"}, function (e) {alert(JSON.stringify(e));});复制代码
这个接口是官方例子里的写法,我本来以为是没问题的,没想到........
在部分手淘的ios端调用失败,失败的原因没看出来,感觉和ios版本无关。
Tida.follow2({sellerId}, data => {if ((typeof (data.success) === 'undefined' && Code === 0) || data.success === true || data.success === 'true') {console.log('执行收藏店铺回调')} else {console.log('收藏失败')}
})复制代码
这是最稳定的接口了,但是没直接写在文档里,我是翻别人的代码抄下来的(滑稽)。
我当时弄出收藏功能后,已经是生无可恋了。
转载于:
本文发布于:2024-02-04 19:59:41,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170715353459123.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |