我正在嘗試使用Perl在Asana中創建任務。我使用以下模塊:使用Perl創建Asana任務
- WWW ::捲曲::簡單
- JSON
- HTTP請求::
這裏是我的代碼。
my %data = (
"data" => {
"workspace" => "##########", #$config->get('asana/workspace_id'),
"name" => "system error",
"assignee" => "me",
"projects" => "##########",
},
);
my @header = ('Authorization' => 'Bearer '.$personal_access_token));
my $curl = WWW::Curl::Simple->new();
my $uri = $config->get('asana/api_uri');
my $content = JSON->new->utf8->encode(\%data);
my $r = HTTP::Request->new(
'POST',
$uri,
\@header,
$content
);
my $res = $curl->request($r);
當我打印$ content變量時,它看起來像這樣。
{"data":{"workspace":"##########","name":"CBC FZDS Billing - System Error"}}
當我打印$ r變量作爲字符串時,它看起來像這樣。 (「個人訪問令牌」顯示我的,我所提供的個人訪問令牌。)
POST https://app.asana.com/api/1.0/tasks
Authorization: Bearer <personal access token>
{"data":{"workspace":"##########","name":"CBC FZDS Billing - System Error"}}
從$res->content
結果是:
'{"errors":[{"message":"missing `workspace` field, and no `parent` or `projects` specified","help":"For more information on API status codes and how to handle them, read the docs on errors: https://asana.com/developers/documentation/getting-started/errors"}]}'
任何想法,爲什麼這表明該工作區字段缺少?
從示例中看起來像頂部您擁有的級別「數據」鍵是不必要的:https://asana.com/developers/api-reference/tasks#create –
@HunterMcMillen:感謝您的回覆。這裏是$ content變量。 {「workspace」:「#######」,「name」:「System Error」} 這裏是$ r變量。 POST https://app.asana.com/api/1.0/tasks 授權:承載<個人訪問令牌> {「workspace」:「#######」,「name」:「系統錯誤「} 我從$ res-> content得到相同的結果。 其他建議? –