Taobao open淘宝开放平台消息使用
使用淘宝开放的消息接口分四步:
1 给用户开通消息
这个函数其实只需要执行一次.
这个函数需要token, 参见我之前的博文: 淘宝开放平台用户授权.
/**
给用户开通消息
调用taobao.tmc.user.permit接口给用户(即淘宝或天猫商家)开通,可以选择只给用户开通部分消息类型,也可全部开通
*/
//设置获取的消息内容
$c = new TopClient;
$c->appkey = $appkey;
$c->secretKey = $secret;
$req = new TmcUserPermitRequest;
//$req->setTopics("taobao_trade_TradeCreate,taobao_refund_RefundCreate");
$resp = $c->execute($req, $sessionKey);
var_dump($resp);
2 得到订阅的消息列表.
这是为了测试下是否成功的开通了消息.
$c = new TopClient;
$c->appkey = $appkey;
$c->secretKey = $secret;
$req = new TmcUserGetRequest;
$req->setFields("user_nick,topics,user_id,is_valid,created,modified");
$req->setNick("testnick");
$req->setUserPlatform("tbUIC");
$resp = $c->execute($req);
var_dump($resp);
echo "<br> hello 7.5 <br> ";
3 声明淘宝接口. 消费多条消息.
这个是主力函数, 淘宝建议写个死循环重复调用这个接口, 当然最好sleep几秒, 省流量, 并且免得淘宝觉得我们在攻击他们.
var_dump($appkey);
print_r($appkey);
$c = new TopClient; //这个地方必须\
$c->appkey = $appkey;
$c->secretKey = $secret;
$req = new TmcMessagesConsumeRequest;
$req->setGroupName("default");
$req->setQuantity("100");
echo "<br> hello 8 <br> ";
#这里需要写个死循环, 不停地读取消息.
$resp = $c->execute($req);
echo "<br> hello 9 <br> ";
var_dump($resp);
4 还要解析json.
foreach($resp->messages->tmc_message as $k=>$v){//resp不是json, $resp->messages->tmc_message才是json.
$x=json_decode($v->content, TRUE, 512, JSON_BIGINT_AS_STRING); //这句话解析json为数组
//下面两行是我的处理方法, 不必模仿. 反正已经拿到了json转为的数组, 所以可以随意处理.
if(handlem($x)) continue;// 如果有满足条件的项目, 那么进入下一轮.
if(is_array($x))showarray($x);
}