export const onFriendship = async friendship => {
const _contact = friendship.contact();
try {
switch (friendship.type()) {
case Friendship.Type.Receive:
await friendship.accept();
break;
case Friendship.Type.Confirm:
break;
}
} catch (e) {
console.error(e);
process.exit(3002);
}
};
会经常出现以下情况:
1、经常会出现『no raw payload』
2、想知道『Friendship.Type.Confirm』的出现场景
3、延迟非常严重,发生了好友邀请,结果手机上是有,但是wechaty没有监听到;有时候会连续触发好几次
经常会出现『no raw payload』
需要更多详细的日志说明
想知道『Friendship.Type.Confirm』的出现场景
如果是机器人通过了用户的好友请求,会出现这个
延迟非常严重,发生了好友邀请,结果手机上是有,但是wechaty没有监听到;有时候会连续触发好几次
需要详细的日志说明。另外,延迟几秒是正常现象。
感谢回复,我发现有个触发的情况是:
A:机器人
B:另一个微信号
B和A原来是好友,然后A删除了B;
这个适合B再加A的时候,Contact.friend()显示true,导致这时候,accpet的时候会出现no raw payload,并且这个Contact.name()仍可以取到值(预期:新用户是没有这个值的)
并且这个时候是不会触发『Friendship.Type.Confirm』的场景,他们直接就会通过
B和A原来是好友,然后A删除了B;
你说的这种情况,B还会认为自己和A是好友,除非他发消息给B发现发不出去了,才会知道自己已经不是A的好友了。你可以在自己的微信上实验一下,所以此时 Contact.friend()显示true 是正常的。
这也就解释了,当A删除了B,A再加B的时候,会直接通过的原因。
以上的情况,你抛开代码层面,单纯用手机微信试一下,再回归代码里面会好容易理解一些。
原来如此 非常感谢解答
Most helpful comment
你说的这种情况,B还会认为自己和A是好友,除非他发消息给B发现发不出去了,才会知道自己已经不是A的好友了。你可以在自己的微信上实验一下,所以此时 Contact.friend()显示true 是正常的。
这也就解释了,当A删除了B,A再加B的时候,会直接通过的原因。
以上的情况,你抛开代码层面,单纯用手机微信试一下,再回归代码里面会好容易理解一些。