啊啊啊,啊啊啊,......,你能听出来是哪首歌?buuuuu,个性化菜单之歌。我们的认知范围内,标签这个东西是没有顺序的,比如,说你“胖”,“丑”,“没钱”,你能排出个顺序来么?你丑的比胖的厉害,你没钱的比丑的轻。好像没什么道理。
但微信用户标签是有顺序的,尤其是针对“个性化菜单”的时候,只有用户最后打上的那个标签才是有效的标签,才会显示对应的菜单,害我苦死几日。可以看出,“没钱”才是你真正的标签。
突然觉得也道理的,毕竟越晚打上的标签,越是看透了你之后打上的,才是你的本质所在。
use app\common\UserTag;
...
# 115,116,117是对应三种不同的个性和菜单,不重合,必须最后加上
foreach([115,116,114] as $last){
if(in_array($last, $tagid_list)){
if(count($tagid_list) > 1){
$remain = array_diff($tagid_list,[$last]);
array_push($remain, $last);
$tagid_list = $remain;
}
}
}
$ut = new UserTag($access_token);
foreach($tagid_list as $tagid){
$ut->id($tagid)->tagUser($this->toUser);
}
...
标签打不上
微信只提供了,一个标签,多个用户的这种打标签的方式,这里的“多个”是有条件的
- 至少两个openid
- 必须至少是两个不同的openid
- 两个openid可以是已经打过的
public
function tagUser(string $openid){
$openid_list = [$openid, 'xXxXXxXXxxxXXxXxx0xXX7xxXXXx']; //小号
// 这里必须{1}至少两个{2}有效的{3}可重复性的{4}openid
// 所以凑一对儿
# 刷新用户 tagid_list
// $user = new Follower($openid);
// $user->freshTagList(); # 2017-06-28
return $this->_batchTagUsers($openid_list);
}
所以, 当你需要给一个备用的微信号关注这个公众号,每次都把这个备用账户的openid 和 需要打标签的openid 凑一对儿才可以
标签打不上2
我只前想过可以捏造一个openid呀,就是和真的openid很像的那种,but不行,放弃也是需要骂娘的。