I22r-Translate-Microsoft

 view release on metacpan or  search on metacpan

Makefile.PL  view on Meta::CPAN

requires 'LWP::UserAgent' => 0;
requires 'XML::XPath' => 0;
requires 'URL::Encode' => 0;
test_requires 'Test::More' => 0;

auto_install;
WriteAll;

print STDERR qq[
*******************************************************************
Using the Microsoft translation backend requires credentials for
Microsoft data services. If you wish to test the Micrsoft backend, 
you will need to edit the file

       t/Constants.pm

and specify your credentials. See the perldoc for 
I22r::Translate::Microsoft for information about obtaining a
set of credentials for yourself, or

       http://search.cpan.org/perldoc?I22r-Translate-Microsoft#CREDENTIALS

*******************************************************************
];

README  view on Meta::CPAN


Translates content from one supported language to another, using
the Microsoft Translator webservice with the  I22r::Translate
framework. See the  I22r::Translate  for more information.

To use the Microsoft Translator API, you must set up an account
at the "Windows Azure Marketplace", choose a translator API
data plan, and "register an application" to get a "client ID"
and a "client secret" that you must provide to this module.
See the instructions below or the  I22r::Translate::Microsoft
documentation on how to get these credentials.

INSTALLATION

To install this module, run the following commands:

	perl Makefile.PL
	make
	make test
	make install

TESTING WITH MICROSOFT DATA SERVICES CREDENTIALS

If you have registered for data services from Microsoft
and want to use your credentials with the unit tests in
this distribution, edit the bottom of the file
t/Constants.pm  before you run "make test". See the
documentation for the  I22r::Translate::Microsoft
package for some (possibly outdated) information about
how to obtain those credentials.

If you do not specify your credentials (a "client id"
and a "secret"), then the unit tests that interact with
Microsoft's data services will be skipped.

CONFIGURATION

This Microsoft backend is used in conjunction with the
I22r::Translate  framework. You configure the framework
with a call to  I22r::Translate->config  , passing a 
key-value pair with the key "I22r::Translate::Microsoft".
A minimal configuration would look like:

README  view on Meta::CPAN


The  CLIENT_ID  and  SECRET  parameters are required. See
the  I22r::Translate::Microsoft  and  I22r::Translate
documentation about other possible parameters.

GETTING CREDENTIALS FOR MICROSOFT TRANSLATOR API

You will need to obtain and provide a "client id" and
"client secret" to the  I22r::Translate  framework to
use the Microsoft backend. As of October 2012, here are
the instructions for getting these credentials:

1. If you don't have a  Windows Live ID , sign up
   for one at L<https://signup.live.com/signup.aspx?lic=1>    

2. Visit  https://datamarket.azure.com/dataset/bing/microsofttranslator .
   Register for a "Windows Azure Marketplace" account.

3. Choose a Microsoft Translator data plan. One of the
   available plans is a free option for 2,000,000 characters/month.

README  view on Meta::CPAN


Then you would configure the Microsoft backend with

    I22r::Translate->config(
        'I22r::Translate::Microsoft' => {
            ENABLED => 1,
            CLIENT_ID => "angus",
            SECRET => "ykiDjfQ9lztW/oFUC4t2ciPWH2nJS88FqXcQbs/Z9Y=7"
        } );

(these are not real credentials).


SUPPORT AND DOCUMENTATION

After installing, you can find documentation for this module with the
perldoc command.

    perldoc I22r::Translate::Microsoft

You can also look for information at:

lib/I22r/Translate/Microsoft.pm  view on Meta::CPAN

	return;
    }

    if (!$token->{secret} || $token->{secret} ne $secret) {
	$token->{secret} = $secret;
	$token->{secretx} = url_encode( $secret );
    }
    $token->{client_idx} = url_encode( $client_id );

    my $content = join( '&', 
			'grant_type=client_credentials',
			'client_id=' . $token->{client_idx},
			'client_secret=' . $token->{secretx},
			'scope=http://api.microsofttranslator.com/' );

    my $headers = HTTP::Headers->new(
	'Content-Type', 'application/x-www-form-urlencoded');
    $token->{ua} //= LWP::UserAgent->new;
    my $request = HTTP::Request->new(
	POST => TOKENAUTH_URL,
	$headers, $content );

lib/I22r/Translate/Microsoft.pm  view on Meta::CPAN

sending text to the Microsoft Translate webservice.

=back

=head1 CREDENTIALS

This package interacts with the Microsoft Translator API,
which requires some you/us to provide a "client id" and
"client secret" to access Microsoft's data services.
As of October 2012, here are the steps you need to take
to get those credentials. (If these steps don't work anymore,
and you do figure out what steps you need to do, L<let me 
know|mailto:mob@cpan.org> or L<file a bug report|"SUPPORT">
and I'll update this document.

=over 4

=item 1. 

If you don't have a  Windows Live ID , sign up
for one at L<https://signup.live.com/signup.aspx?lic=1>    

lib/I22r/Translate/Microsoft.pm  view on Meta::CPAN


Then you would configure the Microsoft backend with

    I22r::Translate->config(
        'I22r::Translate::Microsoft' => {
            ENABLED => 1,
            CLIENT_ID => "angus",
            SECRET => "ykiDjfQ9lztW/oFUC4t2ciPWH2nJS88FqXcQbs/Z9Y=7"
        } );

(these are not real credentials).

=back

=head1 AUTHOR

Marty O'Brien, C<< <mob at cpan.org> >>

=head1 BUGS

Please report any bugs or feature requests to 

t/Constants.pm  view on Meta::CPAN

      } );
}


# t/Constants.pmx is a separate file, not included in
# the released distribution, that contains my personal
# API keys for testing and development.

if (-f "t/Constants.pmx" && !$ENV{RELEASE}) {
    # t/Constants.pmx is a file, not included in this distribution,
    # that resides on the author's system and includes his credentials
    # for Microsoft data services.
    require "t/Constants.pmx";
} else {
    $t::Constants::BING_CLIENT_ID = "not used yet";
    $t::Constants::BING_SECRET = "not_used_until_we_add_MS_backend";
    $t::Constants::CONFIGURED = 0;
}

1;



( run in 0.250 second using v1.01-cache-2.11-cpan-fd5d4e115d8 )