LINE-Bot-API
view release on metacpan or search on metacpan
lib/LINE/Bot/Audience.pm view on Meta::CPAN
sub request {
my ($self, $method, $path, @payload) = @_;
return $self->{client}->$method(
$self->{messaging_api_endpoint} . $path,
@payload,
);
}
sub rename_audience {
my ($self, $opts) = @_;
my $res = $self->request(post => 'audienceGroup/'. $opts->{audience_group_id} . '/updateDescription', +{
'description' => $opts->{description},
});
LINE::Bot::API::Response::Common->new(%{ $res });
}
sub create_audience_for_uploading {
my ($self, $opts) = @_;
my $res = $self->request(post => 'audienceGroup/upload', +{
'description' => $opts->{description},
'isIfaAudience' => $opts->{isIfaAudience},
'uploadDescription' => $opts->{uploadDescription},
'audiences' => $opts->{audiences},
});
LINE::Bot::API::Response::AudienceGroupForUploadingUserId->new(%{ $res });
}
sub create_audience_for_click_based_retartgeting {
my ($self, $opts) = @_;
my $res = $self->request(post => 'audienceGroup/click', +{
'description' => $opts->{description},
'requestId' => $opts->{requestId},
'clickUrl' => $opts->{clickUrl},
});
LINE::Bot::API::Response::AudienceGroupForClickRetargeting->new(%{ $res });
}
sub create_audience_for_impression_based_retargeting {
my ($self, $opts) = @_;
my $res = $self->request(post => 'audienceGroup/imp', +{
'description' => $opts->{description},
'requestId' => $opts->{requestId},
});
LINE::Bot::API::Response::AudienceGroupForImpressionRetargeting->new(%{ $res });
}
sub get_audience_data {
my ($self, $opts) = @_;
my $res = $self->request(get => 'audienceGroup/' . $opts->{audienceGroupId}, +{});
LINE::Bot::API::Response::AudienceData->new(%{ $res });
}
sub update_authority_level {
my ($self, $opts) = @_;
my $res = $self->request(put => 'audienceGroup/authorityLevel', +{
'authorityLevel' => $opts->{authorityLevel},
});
LINE::Bot::API::Response::Common->new(%{ $res });
}
sub delete_audience {
my ($self, $ops) = @_;
my $res = $self->request(delete => 'audienceGroup/' . $ops->{audienceGroupId}, +{});
LINE::Bot::API::Response::Common->new(%{ $res });
}
sub get_authority_level {
my ($self) = @_;
my $res = $self->request(get => 'audienceGroup/authorityLevel', +{});
LINE::Bot::API::Response::AudienceAuthorityLevel->new(%{ $res });
}
sub get_data_for_multiple_audience {
my ($self, $opts) = @_;
my $uri = URI->new('audienceGroup/list');
$uri->query_param(page => $opts->{page} // 1);
$uri->query_param(description => $opts->{description} // '');
$uri->query_param(status => $opts->{status} // '');
$uri->query_param(size => $opts->{size} // 20);
$uri->query_param(includesExternalPublicGroups => $opts->{includesExternalPublicGroups} // '');
$uri->query_param(createRoute => $opts->{createRoute} // '');
my $res = $self->request(get => $uri->as_string);
LINE::Bot::API::Response::AudienceMultipleData->new(%{ $res });
}
1;
__END__
=head1 NAME
LINE::Bot::Audience
=head1 C<< rename_audience({ description => "...", audience_group_id => "..." }) >>
Renames an existing audience.
See also the API reference of this method: L<https://developers.line.biz/en/reference/messaging-api/#set-description-audience-group>
=head1 C<< create_audience_for_uploading({ description => "...", isIfaAudience => "...", audiences => [{ id => "..." }, ... ] }) >>
Creates an audience for uploading user IDs. `description` is required parameter. the others are optional. 'audiences' is a part of this method argument, and this argument need to be ArrayRef like below.
[
{
id => 123
},
{
id => 124
( run in 2.438 seconds using v1.01-cache-2.11-cpan-df04353d9ac )