Создайте Google Team Drive с модулем Perl LWP :: Authen :: OAuth2 - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь использовать Perl с LWP :: Authen :: OAuth2 для создания диска команды Google. Понимать, как создать командный диск Google с помощью API Google Drive, необходимо опубликовать 1 параметр requestId и еще один json body name (ссылка: https://developers.google.com/drive/api/v3/reference/teamdrives/create)

Однако я продолжаю получать код ошибки 400 и сообщение об ошибке, говорящее

Необходимо указать имя Team Drive, не пустое и не полностью пробел.

, который указывает, что тело json name отправлено неправильно.

Ниже мой код:

# 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 сможет затенить немного света.

1 Ответ

0 голосов
/ 12 ноября 2018

Вы неправильно передаете параметры в своем вызове на ->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.

...