Group
Extension

Mojo-Weixin/lib/Mojo/Weixin/Model/Remote/_webwxgetcontact.pm

use strict;
use Mojo::Weixin::Const qw(%KEY_MAP_USER %KEY_MAP_GROUP %KEY_MAP_GROUP_MEMBER %KEY_MAP_FRIEND);
sub Mojo::Weixin::_webwxgetcontact {
    my $self = shift;
    my $api = "https://".$self->domain . "/cgi-bin/mmwebwx-bin/webwxgetcontact";
    my $flag = 0;
    my $seq = 0;
    my @friends;
    my @groups;
    do {
        my @query_string = (
            r           =>  $self->now(),
            seq         =>  $seq,
            skey        =>  $self->skey,
        );
        push @query_string,(pass_ticket=>$self->url_escape($self->pass_ticket)) if $self->pass_ticket;

        my $json = $self->http_get($self->gen_url($api,@query_string),{Referer=>'https://'.$self->domain . '/',json=>1});
        #return [\@friends,\@groups] if not defined $json;
        return if not defined $json;
        return if $json->{BaseResponse}{Ret}!=0;
        return if $json->{MemberCount} == 0;
        if ($self->is_update_all_friend and defined $json->{Seq} and $json->{Seq} != 0){#获取的不全,需要继续获取其余部分
            $flag = 1 ;
            $seq = $json->{Seq};
        }
        else{
            $flag = 0;
        }
        for my $e ( @{ $json->{MemberList} } ){
            if($self->is_group_id($e->{UserName})){
                my $group = {};
                for(keys %KEY_MAP_GROUP){
                    $group->{$_} = $e->{$KEY_MAP_GROUP{$_}} // "";
                }
                for my $m (@{$e->{MemberList}}){
                    my $member = {};
                    for(keys %KEY_MAP_GROUP_MEMBER){
                        $member->{$_} = $m->{$KEY_MAP_GROUP_MEMBER{$_}} // "";
                    }
                    $member->{sex} = $self->code2sex($member->{sex});
                    push @{$group->{member}},$member;
                }
                push @groups,$group;
            }
            else{
                my $friend = {};
                for(keys %KEY_MAP_FRIEND){
                    $friend->{$_} = $e->{$KEY_MAP_FRIEND{$_}} // "" ;
                }
                $friend->{sex} = $self->code2sex($friend->{sex});
                push @friends,$friend;
            }
        }
    } while $flag;
    return [\@friends,\@groups];
}
    
1;


Powered by Groonga
Maintained by Kenichi Ishigaki <ishigaki@cpan.org>. If you find anything, submit it on GitHub.