Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??

Thank you localshop for this write-up and your work on this module. I've been nibbling and lurking at these threads, all the while building out what I can do with them. I went ahead and signed up for google cloud services. Now that I've done it, I'm glad for it and have little fear that google is gonna run away with my credit card anytime soon. They do give you $300 worth of credit and a year for a trial period and promise not to upgrade to paying without your say-so.

I built the sdk for debian. 5 commands: easy-peasy. The client is offered in 6 syntaxes, but perl is not one of them. For people who say "perl is dead," that might be proof, but I wonder if perl comes at it differently. Let me ask the question, short of igniting a flame war, is perl unfit for this task?

Does this module, WebService::GoogleAPI::Client, seek to brook that gap?

I wrote a bash driver for this script so that I could set environment variables before invocation. I get a single warning or error:

$ ./2.google.sh >1.txt Use of uninitialized value in split at /usr/local/share/perl/5.26.1/We +bService/GoogleAPI/Client/AuthStorage/ConfigJSON.pm line 82. $

I'll put output, perl script, and bash driver between readmore tags

GOOGLE_APPLICATION_CREDENTIALS=/home/bob/2.scripts/pages/trans1-d8f004 +0850a0.json /home/bob/2.scripts/pages -rw-rw-r-- 1 bob bob 2314 Nov 7 14:42 trans1-d8f0040850a0.json -----output----- json is /home/bob/2.scripts/pages/trans1-d8f0040850a0.json -------script------ #!/usr/bin/perl -w use 5.011; use WebService::GoogleAPI::Client; use Data::Dumper qw (Dumper); =head1 translation_example.pl =head2 PRE-REQUISITES Setup a Google Project in the Google Console and add the Translate API + Library. You may need to enable billing to access Google Cloud Services. Setup an OAUTH Credential set and feed this into the CLI goauth included in WebService::GoogleAPI::Client and use the tool to authoris +e your user to access the project which will also create the local gapi. +json config. =over 2 =item https://www.googleapis.com/auth/cloud-translation =item https://www.googleapis.com/auth/cloud-platform =item assumes gapi.json configuration in working directory with scoped + project and user authorization =back =cut ## assumes gapi.json configuration in working directory with scoped pr +oject and user authorization my $json = $ENV{GOOGLE_APPLICATION_CREDENTIALS}; say "json is $json"; my $gapi_client = WebService::GoogleAPI::Client->new( gapi_json => $js +on, debug=>1 ); my $r = $gapi_client->api_query( api_endpoint_id => 'translate.transl +ations.translate', options => { q=>'this is some text to transla +te into russian', target => 'ru', format => 'text', } ); say Dumper $r->json; say $r->json->{data}{translations}[0]{translatedText}; -------driver------ #!/bin/bash export GOOGLE_APPLICATION_CREDENTIALS="/home/bob/2.scripts/pages/trans +1-d8f0040850a0.json" env |grep "GOOGLE" pwd ls -l *.json echo "-----output-----" ./2.trans_api.pl echo "-------script------" cat 2.trans_api.pl echo "-------driver------" cat 2.google.sh

It would seem that the Oauth isn't correct. What fields should the .json file have? I think one can show the fields with redacted values and not lose his shirt:

{ "type": "service_account", "project_id": "trans1-221819", "private_key_id": ..., "private_key": "-----BEGIN PRIVATE KEY-----... "client_email": "jehosophat@trans1-221819.iam.gserviceaccount.com", "client_id": "115338096797549417908", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1 +/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadat +a/x509/jehosophat%40trans1-221819.iam.gserviceaccount.com" }

I don't think I made many changes from your script except to print values and I took out one of the debug => 0. Looking for a precise definition of what "scoped" project means. Thank you for your comments and scripts,


In reply to Re^2: language translate by Aldebaran
in thread language translate by bigup401

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others studying the Monastery: (1)
    As of 2021-05-09 16:34 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?
      Perl 7 will be out ...





      Results (101 votes). Check out past polls.

      Notices?