使用 Perl 模块 LWP::Authen::OAuth2 创建 Google Team Drive

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

我正在尝试将 Perl 与 LWP::Authen::OAuth2 结合使用来执行 google 团队驱动器创建。了解使用 google Drive API 创建 google 团队驱动器,它需要发布 1 个参数,即 requestId 和另一个 json body name (参考:https://developers.google.com/drive/api/v3/reference/teamdrives/create

但是,我不断收到错误代码 400 和错误消息

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

这表明 name 的 json 正文未正确发布。

下面是我的代码:

# 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;

感谢具有 Perl 知识的人能够遮挡光线。

您在调用 ->post 时没有正确传递参数:

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

将所有从 Content-Type 开始的内容移出字符串:

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

另请参阅 LWP::UserAgent 关于 ->post 方法的文档。