Create Google Team Drive with Perl module LWP::Authen::OAuth2











up vote
2
down vote

favorite












I'm trying to use Perl with LWP::Authen::OAuth2 to perform google team drive creation. Understand to create google team drive using google Drive API, it requires 1 param to be posted that is requestId and another json body name (reference: https://developers.google.com/drive/api/v3/reference/teamdrives/create)



However, I keep getting the error code 400 and error message saying




The Team Drive name must be provided, not empty, and not entirely whitespace.




which indicate the json body of name is not posted correctly.



Below is my code:



# Go get the auth tokens
$oauth2->request_tokens(code => $code);

my $requestID = "randomrequestID";
my $json = '{"name": "anyteamdrivename"}';

my $resp = $oauth2->post("https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID, Content-Type => application/json, Content => $json");


my $data = decode_json($resp->content());
use Data::Dumper;
print Dumper $data;


Appreciate if someone with Perl knowledge will be able to shade some light.










share|improve this question




















  • 1




    You are not correclty passing the parameters: "https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID, Content-Type => application/json, Content => $json" - move everything starting from Content-Type out of the string.
    – Corion
    Nov 12 at 9:07










  • i just change it to my $resp = $oauth2->post("https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID", "Content-Type => application/json", "Content => $json"); but im still getting the same error code and message
    – Armitage
    Nov 12 at 9:18






  • 1




    Yes, because you're still passing the parameters wrong. See the documentation of LWP::UserAgent on ->post: metacpan.org/pod/LWP::UserAgent . You need 'Content-Type' => 'application/json', 'Content' => $json) .
    – Corion
    Nov 12 at 9:20










  • oh my, you are right Corion. Such a simple yet accurate answer from you. I just corrected them and it works, thanks Corion.
    – Armitage
    Nov 12 at 9:37















up vote
2
down vote

favorite












I'm trying to use Perl with LWP::Authen::OAuth2 to perform google team drive creation. Understand to create google team drive using google Drive API, it requires 1 param to be posted that is requestId and another json body name (reference: https://developers.google.com/drive/api/v3/reference/teamdrives/create)



However, I keep getting the error code 400 and error message saying




The Team Drive name must be provided, not empty, and not entirely whitespace.




which indicate the json body of name is not posted correctly.



Below is my code:



# Go get the auth tokens
$oauth2->request_tokens(code => $code);

my $requestID = "randomrequestID";
my $json = '{"name": "anyteamdrivename"}';

my $resp = $oauth2->post("https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID, Content-Type => application/json, Content => $json");


my $data = decode_json($resp->content());
use Data::Dumper;
print Dumper $data;


Appreciate if someone with Perl knowledge will be able to shade some light.










share|improve this question




















  • 1




    You are not correclty passing the parameters: "https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID, Content-Type => application/json, Content => $json" - move everything starting from Content-Type out of the string.
    – Corion
    Nov 12 at 9:07










  • i just change it to my $resp = $oauth2->post("https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID", "Content-Type => application/json", "Content => $json"); but im still getting the same error code and message
    – Armitage
    Nov 12 at 9:18






  • 1




    Yes, because you're still passing the parameters wrong. See the documentation of LWP::UserAgent on ->post: metacpan.org/pod/LWP::UserAgent . You need 'Content-Type' => 'application/json', 'Content' => $json) .
    – Corion
    Nov 12 at 9:20










  • oh my, you are right Corion. Such a simple yet accurate answer from you. I just corrected them and it works, thanks Corion.
    – Armitage
    Nov 12 at 9:37













up vote
2
down vote

favorite









up vote
2
down vote

favorite











I'm trying to use Perl with LWP::Authen::OAuth2 to perform google team drive creation. Understand to create google team drive using google Drive API, it requires 1 param to be posted that is requestId and another json body name (reference: https://developers.google.com/drive/api/v3/reference/teamdrives/create)



However, I keep getting the error code 400 and error message saying




The Team Drive name must be provided, not empty, and not entirely whitespace.




which indicate the json body of name is not posted correctly.



Below is my code:



# Go get the auth tokens
$oauth2->request_tokens(code => $code);

my $requestID = "randomrequestID";
my $json = '{"name": "anyteamdrivename"}';

my $resp = $oauth2->post("https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID, Content-Type => application/json, Content => $json");


my $data = decode_json($resp->content());
use Data::Dumper;
print Dumper $data;


Appreciate if someone with Perl knowledge will be able to shade some light.










share|improve this question















I'm trying to use Perl with LWP::Authen::OAuth2 to perform google team drive creation. Understand to create google team drive using google Drive API, it requires 1 param to be posted that is requestId and another json body name (reference: https://developers.google.com/drive/api/v3/reference/teamdrives/create)



However, I keep getting the error code 400 and error message saying




The Team Drive name must be provided, not empty, and not entirely whitespace.




which indicate the json body of name is not posted correctly.



Below is my code:



# Go get the auth tokens
$oauth2->request_tokens(code => $code);

my $requestID = "randomrequestID";
my $json = '{"name": "anyteamdrivename"}';

my $resp = $oauth2->post("https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID, Content-Type => application/json, Content => $json");


my $data = decode_json($resp->content());
use Data::Dumper;
print Dumper $data;


Appreciate if someone with Perl knowledge will be able to shade some light.







json perl lwp






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 12 at 10:54









simbabque

43.6k754101




43.6k754101










asked Nov 12 at 8:40









Armitage

182




182








  • 1




    You are not correclty passing the parameters: "https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID, Content-Type => application/json, Content => $json" - move everything starting from Content-Type out of the string.
    – Corion
    Nov 12 at 9:07










  • i just change it to my $resp = $oauth2->post("https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID", "Content-Type => application/json", "Content => $json"); but im still getting the same error code and message
    – Armitage
    Nov 12 at 9:18






  • 1




    Yes, because you're still passing the parameters wrong. See the documentation of LWP::UserAgent on ->post: metacpan.org/pod/LWP::UserAgent . You need 'Content-Type' => 'application/json', 'Content' => $json) .
    – Corion
    Nov 12 at 9:20










  • oh my, you are right Corion. Such a simple yet accurate answer from you. I just corrected them and it works, thanks Corion.
    – Armitage
    Nov 12 at 9:37














  • 1




    You are not correclty passing the parameters: "https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID, Content-Type => application/json, Content => $json" - move everything starting from Content-Type out of the string.
    – Corion
    Nov 12 at 9:07










  • i just change it to my $resp = $oauth2->post("https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID", "Content-Type => application/json", "Content => $json"); but im still getting the same error code and message
    – Armitage
    Nov 12 at 9:18






  • 1




    Yes, because you're still passing the parameters wrong. See the documentation of LWP::UserAgent on ->post: metacpan.org/pod/LWP::UserAgent . You need 'Content-Type' => 'application/json', 'Content' => $json) .
    – Corion
    Nov 12 at 9:20










  • oh my, you are right Corion. Such a simple yet accurate answer from you. I just corrected them and it works, thanks Corion.
    – Armitage
    Nov 12 at 9:37








1




1




You are not correclty passing the parameters: "https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID, Content-Type => application/json, Content => $json" - move everything starting from Content-Type out of the string.
– Corion
Nov 12 at 9:07




You are not correclty passing the parameters: "https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID, Content-Type => application/json, Content => $json" - move everything starting from Content-Type out of the string.
– Corion
Nov 12 at 9:07












i just change it to my $resp = $oauth2->post("https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID", "Content-Type => application/json", "Content => $json"); but im still getting the same error code and message
– Armitage
Nov 12 at 9:18




i just change it to my $resp = $oauth2->post("https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID", "Content-Type => application/json", "Content => $json"); but im still getting the same error code and message
– Armitage
Nov 12 at 9:18




1




1




Yes, because you're still passing the parameters wrong. See the documentation of LWP::UserAgent on ->post: metacpan.org/pod/LWP::UserAgent . You need 'Content-Type' => 'application/json', 'Content' => $json) .
– Corion
Nov 12 at 9:20




Yes, because you're still passing the parameters wrong. See the documentation of LWP::UserAgent on ->post: metacpan.org/pod/LWP::UserAgent . You need 'Content-Type' => 'application/json', 'Content' => $json) .
– Corion
Nov 12 at 9:20












oh my, you are right Corion. Such a simple yet accurate answer from you. I just corrected them and it works, thanks Corion.
– Armitage
Nov 12 at 9:37




oh my, you are right Corion. Such a simple yet accurate answer from you. I just corrected them and it works, thanks Corion.
– Armitage
Nov 12 at 9:37












1 Answer
1






active

oldest

votes

















up vote
3
down vote



accepted










You are not correctly passing the parameters in your call to ->post:



my $resp = $oauth2->post("https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID, Content-Type => application/json, Content => $json");


Move everything starting from Content-Type out of the string:



my $resp = $oauth2->post(
"https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID",
"Content-Type" => "application/json",
"Content" => $json
);


See also the documentation of LWP::UserAgent on the ->post method.






share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53258442%2fcreate-google-team-drive-with-perl-module-lwpauthenoauth2%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    3
    down vote



    accepted










    You are not correctly passing the parameters in your call to ->post:



    my $resp = $oauth2->post("https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID, Content-Type => application/json, Content => $json");


    Move everything starting from Content-Type out of the string:



    my $resp = $oauth2->post(
    "https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID",
    "Content-Type" => "application/json",
    "Content" => $json
    );


    See also the documentation of LWP::UserAgent on the ->post method.






    share|improve this answer

























      up vote
      3
      down vote



      accepted










      You are not correctly passing the parameters in your call to ->post:



      my $resp = $oauth2->post("https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID, Content-Type => application/json, Content => $json");


      Move everything starting from Content-Type out of the string:



      my $resp = $oauth2->post(
      "https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID",
      "Content-Type" => "application/json",
      "Content" => $json
      );


      See also the documentation of LWP::UserAgent on the ->post method.






      share|improve this answer























        up vote
        3
        down vote



        accepted







        up vote
        3
        down vote



        accepted






        You are not correctly passing the parameters in your call to ->post:



        my $resp = $oauth2->post("https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID, Content-Type => application/json, Content => $json");


        Move everything starting from Content-Type out of the string:



        my $resp = $oauth2->post(
        "https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID",
        "Content-Type" => "application/json",
        "Content" => $json
        );


        See also the documentation of LWP::UserAgent on the ->post method.






        share|improve this answer












        You are not correctly passing the parameters in your call to ->post:



        my $resp = $oauth2->post("https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID, Content-Type => application/json, Content => $json");


        Move everything starting from Content-Type out of the string:



        my $resp = $oauth2->post(
        "https://www.googleapis.com/drive/v3/teamdrives?requestId=$requestID",
        "Content-Type" => "application/json",
        "Content" => $json
        );


        See also the documentation of LWP::UserAgent on the ->post method.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 12 at 9:39









        Corion

        2,458722




        2,458722






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53258442%2fcreate-google-team-drive-with-perl-module-lwpauthenoauth2%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Guess what letter conforming each word

            Port of Spain

            Run scheduled task as local user group (not BUILTIN)