2012-08-29 138 views
0

我無法通過PHP中的SOAP API創建問題。我試過這個:通過SOAP API和PHP創建JIRA問題

$soapClient = new SoapClient("http://jira:9090/rpc/soap/jirasoapservice-v2?wsdl"); 
$token = $soapClient->login('user', 'pass'); 
$issue=array(
    'type'=>3, 
    'priority'=>3, 
    'project'=>'XXX', 
    'duedate'=>time(), 
    'components'=>'', 
    'versions'=>'', 
    'fixVersions'=>'', 
    'assignee'=>'user1', 
    'reporter'=>'user1', 
    'environment'=>'', 
    'description'=>'test', 
    'summary'=>'test', 
    'timetracking'=>'', 
    'attachment'=>'', 
    'labels'=>'' 
); 
$soapClient->createIssue($token, $issue); 

但是當我運行這個腳本時,新問題不會在JIRA中創建。有人可以幫我解決這個問題嗎?

+0

哪個Jira版本? – Kuf

+0

身份驗證中的用戶標識「用戶」是否有權設置記者字段?另外嘗試不設置duedate字段,因爲時間的結果不可能是預期的格式。 – mdoar

+0

嗨,如果這有幫助,請[接受我的回答](http:// meta。stackexchange.com/questions/16721/how-does-accept-rate-work/65088#65088)謝謝! :) – Kuf

回答

1

確保:

  • 項目名稱是正確
  • 問題類型3號存在,並且包含了所有這些領域
  • user1(從發出場)的權限是受讓人和記者此項目(嘗試手動執行)
  • user(來自身份驗證)有權在此項目中創建新問題(與用戶手動登錄並嘗試創建問題)

duedate'=>time()對我來說工作正常。其實,我把你的代碼,改變了項目,記者和assingee的名字,它在Jira 4.4.4下爲我工作。

奇怪的是,如果有一個問題,你應該得到一個錯誤,你如何執行php文件?嘗試手動運行以檢查錯誤。要做到這一點創建一個PHP文件與下面的頭:

#!/usr/bin/php 

給它運行的權限chmod +x myscript.php並執行它./myscript.php。如果您正在從您的Web服務器運行它,請檢查/var/log/httpd/error_log是否有錯誤。請確保您已經安裝了SOAP:

[[email protected]]# cat /etc/php.d/soap.ini 
; Enable soap extension module 
extension=soap.so 

如果您發現任何錯誤更新的問題。

0

您的問題查詢必須是一個對象

$issueQuery = new stdClass; 

您的所有字段必須是一個數組

$customFields = array(); 

你customfields必須是一個對象

$fieldOBJ = new stdClass; 
$fieldOBJ->customfieldId = 'customfield_10237'; 
$fieldOBJ->key = ''; 
$fieldOBJ->values = array(utf8_encode($value)); 

將它添加到陣列

$customFields[] = $fieldOBJ; 

添加到該問題的查詢自定義字段(和其他主要領域)

$issueQuery->customFieldValues = $customFields; 

創建問題($令牌是您的網絡連接)

$issueCreated = $soapClient->createIssue($token, $demande); 

完蛋了! $ issueCreated將返回問題密鑰