jira rest api创建问题时出错

时间:2014-09-20 16:43:54

标签: php rest

嗨我在尝试使用rest api和php.Error(s)创建问题时在jira中创建问题时遇到以下错误:       对象(stdClass的)[1]       public' errorMessages' =>        数组(大小= 0)         空        公共错误' =>         对象(stdClass的)[2]       公共'摘要' =>字符串'字段'摘要'无法设定。它是           不在适当的屏幕上,或未知。' (长度= 79)          公共'描述' =>字符串'字段'描述'不可能是          组。它不在适当的屏幕上,或未知。' (长度= 83)          ` 我使用以下源代码:

<?php

 define('JIRA_URL', 'xxxxxxxx');
 define('USERNAME', 'xxxxxxxxx');
 define('PASSWORD', 'xxxxxxxx');

 function post_to($resource, $data) {
 $curlname=CURLOPT_POST;
 $curlvalue=1;  
 $jdata = json_encode($data);
 $ch = curl_init();
 curl_setopt_array($ch, array(
    $curlname => $curlvalue,
    CURLOPT_URL => JIRA_URL . '/rest/api/latest/' . $resource,
    CURLOPT_USERPWD => USERNAME . ':' . PASSWORD,
    CURLOPT_POSTFIELDS => $jdata,
    CURLOPT_HTTPHEADER => array('Content-type: application/json'),
    CURLOPT_RETURNTRANSFER => true
 ));
 $result = curl_exec($ch);
 curl_close($ch);
 return json_decode($result);
 }

 function create_issue($issue) {
 return post_to('issue', $issue);
 }

 $new_issue = array(
 'fields' => array(
    'project' => array('key' => 'xxx'),
    'summary' => 'Test via REST',
    'description' => 'Description of issue goes here.',
    'issuetype' => array('name' => 'Task')
 )
 );

 $result = create_issue($new_issue);
 if (property_exists($result, 'errors')) {
 echo "Error(s) creating issue:\n";
 var_dump($result);
  } else {
 echo "New issue created at " . JIRA_URL ."/browse/{$result->key}\n";
 }

 ?>

出于安全原因,替换了xxxx的字段。 我想知道如何纠正这个错误。

1 个答案:

答案 0 :(得分:-1)

虽然我在近一年前看到这个问题,但我会继续回答:

由于您使用的帐户无权查看这些字段,因此出现“未在适当的屏幕上或未知”错误。

使用您提供给服务的帐户凭据登录JIRA实例,并尝试在您使用的同一队列(项目)中创建一个票证作为$new_issue["fields"]["project"]["key"]的值。 这很重要,因为不同的队列会有不同的权限。当表单出现创建问题的字段时,您可能看不到“摘要”和“说明”字段。您正在使用的帐户需要添加到Administrator组(还有其他具有不同权限的组,例如Developer和Member)。