0

我无法通过 PHP 中的 SOAP API 创建问题。我试过这个:

$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 中创建。有人可以帮我解决这个问题吗?

4

2 回答 2

1

确保:

  • 项目名称正确
  • 问题类型 3 存在并包含所有这些字段
  • user1(来自问题字段)有权成为该项目的受让人和报告者(尝试手动执行)
  • user(来自身份验证)有权在此项目中创建新问题(使用用户手动登录并尝试创建问题)

duedate'=>time()我来说工作正常。实际上,我拿了你的代码,更改了项目、记者和受让人的名字,它在 Jira 4.4.4 下对我有用。

奇怪的是,如果有问题你会得到一个错误,你是如何尝试执行 php 文件的?尝试手动运行它以检查错误。为此,请创建一个带有以下标头的 PHP 文件:

#!/usr/bin/php

给它运行权限chmod +x myscript.php 并执行它./myscript.php。如果您从 Web 服务器运行它,请检查/var/log/httpd/error_log错误。确保您已安装 SOAP:

[root@localhost]# cat /etc/php.d/soap.ini
; Enable soap extension module
extension=soap.so

如果您发现任何错误,请更新问题。

于 2012-08-30T14:35:17.903 回答
0

您的问题查询必须是一个对象

$issueQuery = new stdClass;

您的所有字段都必须在一个数组中

$customFields = array();

您的自定义字段必须是一个对象

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

将其添加到数组

$customFields[] = $fieldOBJ;

将自定义字段添加到问题查询(和其他主要字段)

$issueQuery->customFieldValues = $customFields;

创建问题($token 是您的连接)

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

而已!$issueCreated 将是返回的问题密钥

于 2012-10-04T15:05:34.987 回答