我想要的只是登录,显示来自简单过滤器的信息,就像里程碑中的所有开放错误一样。一旦我得到那么多病就能够解决文件
我希望使用简单的PHP,因为我是PHP的新手,因此编码越复杂,我就越难以弄明白。
这个脚本是我最接近成功的脚本:
<?php
define('JIRA_URL', 'https://mysite.atlassian.net');
define('USERNAME', 'me@gmail.com');
define('PASSWORD', '11111');
function post_to($resource, $data) {
$jdata = json_encode($data);
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_POST => 1,
CURLOPT_URL => JIRA_URL . '/rest/api/2/' . $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' => 'FOO'),
'summary' => 'Test via REST',
'description' => 'Description of issue goes here.',
'issuetype' => array('name' => 'Story')
)
);
$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";
var_dump($result);
}
?>
它返回在http://mysite.atlassian.net/browse/
创建的新问题但是当我把var_dump($ result)放在那里时只返回null,所以我不知道jira URL是错误的还是我的密码,或者它是否是新的rest API的过时代码。
如果我只能对API进行1次简单查询,并在我的PHP页面上看到任何返回的内容,那么我将是一个快乐的露营者。上面的示例创建了一个新问题,这只是我使用的示例,但我只是返回任何类型的数据,所以我的主要问题是获得有效的连接并返回一些信息,所以我知道它的工作,无法启动然后尝试一些不同的东西。
我有管理员权限,但我不清楚我是否需要在管理员端启用某些功能。
答案 0 :(得分:14)
我想出了我需要做什么,网上有很多例子,但我找不到这样的简单,所以希望它可以帮助其他人
$username = 'xxx';
$password = 'xxx';
$url = 'https://xxx.atlassian.net/rest/api/2/Issue/Bug-5555';
$curl = curl_init();
curl_setopt($curl, CURLOPT_USERPWD, "$username:$password");
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
$issue_list = (curl_exec($curl));
echo $issue_list;
答案 1 :(得分:4)
我有一些更有价值的东西,你可以检查这个库。这是唯一能节省我时间的东西。我甚至使用了你的代码,但代码对我来说很难。但是这个图书馆很棒。它... ..)
https://github.com/FayP/JIRA-php
如果您需要任何有关如何使用此功能的帮助,请与我们联系。
答案 2 :(得分:3)
关注此页面......
我们现在需要使用标头身份验证,这看起来 - 修改此步骤中的示例 - 如:
$username = 'user';
$password = 'pass';
$url = 'https://www.jiradomain.com/rest/api/2/issue/PROJECT-321/worklog';
$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: Basic ' . base64_encode("$username:$password")) );**
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_VERBOSE, true);
$verbose = fopen('php://temp', 'rw+');
curl_setopt($curl, CURLOPT_STDERR, $verbose);
$issue_list = (curl_exec($curl));
echo $issue_list;
$result = curl_exec($curl);
if ($result === FALSE) {
printf("cUrl error (#%d): %s<br>\n", curl_errno($curlHandle),
htmlspecialchars(curl_error($curlHandle)));
}
rewind($verbose);
$verboseLog = stream_get_contents($verbose);
echo "Verbose information:\n<pre>", htmlspecialchars($verboseLog), "</pre>\n";