OVH.pm (4860B)
1 package SMS::OVH; 2 3 use 5.006; 4 use strict; 5 use warnings; 6 7 use OvhApi; 8 use Moose; 9 use namespace::autoclean; 10 11 has [qw( app_key app_secret cons_key serviceName sender )] => ( 12 isa => 'Str', 13 is => 'ro', 14 required => 1 15 ); 16 17 has 'receivers' => ( 18 is => 'rw', 19 isa => 'ArrayRef', 20 required => 1, 21 lazy => 1, 22 default => sub { [] } 23 ); 24 25 has 'message' => ( 26 isa => 'Str', 27 is => 'rw', 28 required => 1, 29 lazy => 1, 30 default => '' 31 ); 32 33 has '_api' => ( 34 is => 'ro', 35 lazy => 1, 36 default => sub { 37 my $self = shift; 38 my $api = OvhApi->new( 39 type => OvhApi::OVH_API_EU, 40 applicationKey => $self->app_key, 41 applicationSecret => $self->app_secret, 42 consumerKey => $self->cons_key 43 ); 44 return $api; 45 } 46 ); 47 48 =head1 NAME 49 50 SMS::OVH - Send SMS using OVH API (https://api.ovh.com/) 51 52 =head1 VERSION 53 54 Version 0.03 55 56 =cut 57 58 our $VERSION = '0.03'; 59 60 =head1 SYNOPSIS 61 62 This is just a little module that use OvhApi.pm to send SMS using the french provider API. 63 You'll need the OvhApi.pm module provided by OVH at: 64 65 https://eu.api.ovh.com/wrappers/OvhApi-perl-1.1.zip 66 67 OvhApi is not a CPAN modeula (yet), so you'll need to have it installed before install this module. 68 69 This module also depends on Moose (https://metacpan.org/pod/Moose) 70 71 use SMS::OVH; 72 73 my $sms = SMS::OVH->new( 74 app_key => 'your-key', 75 app_secret => 'your-secret', 76 cons_key => 'your-cons-key', 77 serviceName => 'a-service-name', 78 sender => 'a-sender-name', 79 receivers => ['+33123123123'], 80 message => 'This is a test text message.' 81 ); 82 83 $sms->send(); 84 85 =head1 METHODS 86 87 =head2 send 88 89 This is the only method. It just tries to complete the API request. 90 It takes no arguments, just uses the parameters set when the instance is created. 91 92 =cut 93 94 sub send { 95 my $self = shift; 96 my $url = "/sms/" . $self->serviceName . "/jobs"; 97 my %body = ( 98 message => $self->message, 99 sender => $self->sender, 100 noStopClause => 'true', 101 receivers => $self->receivers 102 ); 103 return $self->_api->rawCall( 104 path => $url, 105 method => 'post', 106 body => \%body 107 ); 108 } 109 110 =head1 AUTHOR 111 112 Paco Esteban, C<< <paco at onna.be> >> 113 114 =head1 BUGS 115 116 Please report any bugs or feature requests to C<bug-sms-ovh at rt.cpan.org>, or through 117 the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=SMS-OVH>. I will be notified, and then you'll 118 automatically be notified of progress on your bug as I make changes. 119 120 =head1 SUPPORT 121 122 You can find documentation for this module with the perldoc command. 123 124 perldoc SMS::OVH 125 126 127 You can also look for information at: 128 129 =over 4 130 131 =item * RT: CPAN's request tracker (report bugs here) 132 133 L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=SMS-OVH> 134 135 =item * AnnoCPAN: Annotated CPAN documentation 136 137 L<http://annocpan.org/dist/SMS-OVH> 138 139 =item * CPAN Ratings 140 141 L<http://cpanratings.perl.org/d/SMS-OVH> 142 143 =item * Search CPAN 144 145 L<http://search.cpan.org/dist/SMS-OVH/> 146 147 =back 148 149 =head1 LICENSE AND COPYRIGHT 150 151 Copyright 2015 Paco Esteban. 152 and 153 Powerspace Advertising SL <http://powerspace.com/> 154 155 This program is distributed under the (Revised) BSD License: 156 L<http://www.opensource.org/licenses/BSD-3-Clause> 157 158 Redistribution and use in source and binary forms, with or without 159 modification, are permitted provided that the following conditions 160 are met: 161 162 * Redistributions of source code must retain the above copyright 163 notice, this list of conditions and the following disclaimer. 164 165 * Redistributions in binary form must reproduce the above copyright 166 notice, this list of conditions and the following disclaimer in the 167 documentation and/or other materials provided with the distribution. 168 169 * Neither the name of Paco Esteban's Organization 170 nor the names of its contributors may be used to endorse or promote 171 products derived from this software without specific prior written 172 permission. 173 174 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 175 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 176 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 177 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 178 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 179 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 180 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 181 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 182 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 183 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 184 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 185 186 187 =cut 188 189 1; # End of SMS::OVH