3

REST API を使用して RT でチケットを作成しようとしています。これまでのところ、チケットを検索できます:

$servername="tickets.somedomain"
$u="user=someuser"
$p="pass=P@55w0rd"
$q="search/ticket?query=(Queue='Queue_name')"
$uri="http://" + $servername + "/REST/1.0/" + $q + "&" + $u + "&" + $p
$RT=Invoke-WebRequest -Uri $uri -SessionVariable sess 
$rt.Content

しかし、作成:

$servername = 'http://tickets.somedomain/REST/1.0/ticket/new'
$postParams = @{
    user = 'someuser';
    pass = 'P@55w0rd';
    content = @"
Queue: Queue_name
id: ticket/new
Requestor: some_user_email
Subject: TEST
Status: New
Text: blahblah
"@;
}
$RT = Invoke-WebRequest -Uri $servername -Method Post -Body $postParams
$RT.content

その結果:

RT/3.8.8 200 Ok
# Could not create ticket.
# Could not create ticket. Queue not set

また:

$servername="http://tickets.somedomain/REST/1.0/ticket/new?user=someuser&pass=P@55w0rd"
$RT = Invoke-WebRequest -Uri $servername -Body @{Content="Queue: 'queue_name'\nid: new"} -Method Post
$RT.content

結果:

RT/3.8.8 200 Ok
# Required: id, Queue

id: ticket/new
Queue: 
Requestor: lukasz.wasko
Subject: 
Cc:
AdminCc:
Owner: 
Status: new
Priority: 
InitialPriority: 
FinalPriority: 
TimeEstimated: 0
Starts: 2015-04-09 12:55:33
Due: 2015-04-09 12:55:33
Text: 

http://requesttracker.wikia.com/wiki/REST#Ticket_Createは次のように述べています。

新しいチケットを作成するには: /REST/1.0/ticket/new に、「key: value」を 1 行ずつ含む「content」という名前の変数を付けて投稿します。例:

新しいチケット セクションのテスト

id: ticket/new Queue: Requestor: Subject: Cc: <...> AdminCc: <...> Owner: <...> Status: <...> Priority: <...> InitialPriority: <. ..> FinalPriority: <...> TimeEstimated: <...> Starts: <...> Due: <...> Text: CF-:

解決策を探すのに丸一日を費やしました。グーグルは私のために何の助けも見つけられませんでした..どんなアドバイスや提案も大歓迎です。

4

1 に答える 1

9

OK、自分で解決策を見つけてください :| 「queue: queue_name」は content 変数の末尾になければなりません:

$servername="http://tickets.somedomain/REST/1.0/ticket/new?user=someuser&`pass=P@55w0rd"
$content = @'
id: ticket/new
Subject: Test
Text: some text
Queue: queue_name
'@
$RT = Invoke-WebRequest -Uri $servername -Body @{content=$content} -Method Post
$RT.content

結果:

RT/<version> 200 Ok
# Ticket <number> created.
于 2015-04-09T13:44:38.340 に答える