2012-11-21 20 views
5

Ok ive đã nghiên cứu điều này không có nơi nào, để lại một thời gian, thử thêm một vài lần nữa và lặp lại và vài tuần sau im không tiếp cận được với Jiras API Tôi hy vọng các bạn tuyệt vời có thể giúp tôi.Truy cập Atlassian Jira REST API để chạy báo cáo siêu đơn giản trên một bộ lọc

Tất cả những gì tôi muốn về cơ bản là đăng nhập, hiển thị thông tin từ một bộ lọc đơn giản giống như tất cả các lỗi đang mở trong một cột mốc quan trọng. Một khi tôi nhận được rằng xa bệnh có thể làm việc ra các tài liệu

Im hy vọng sẽ sử dụng PHP đơn giản, đó là vì im mới với PHP vì vậy phức tạp hơn mã hóa là khó khăn hơn cho tôi để con số nó ra.

Kịch bản này là gần nhất ive đến thành công:

<?php 

define('JIRA_URL', 'https://mysite.atlassian.net'); 
define('USERNAME', '[email protected]'); 
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); 
} 
?> 

Nó trả về vấn đề mới được tạo tại http://mysite.atlassian.net/browse/

Nhưng khi tôi đặt var_dump ($ result) trong đó mà chỉ trả về null nên tôi không có ý tưởng nếu url jira là sai hoặc mật khẩu của tôi hoặc nếu mã lỗi thời của nó cho api phần còn lại mới.

Nếu tôi chỉ có thể thực hiện 1 truy vấn đơn giản cho API và xem mọi thứ được trả lại trên trang php của tôi, tôi sẽ là người cắm trại vui vẻ. Ví dụ trên tạo ra một vấn đề mới, đó chỉ là ví dụ tôi đang sử dụng nhưng im tốt với việc trả về bất kỳ loại dữ liệu nào, vì vậy vấn đề chính của tôi là nhận kết nối hợp lệ và trả về một số thông tin. sau đó.

Tôi có quyền truy cập quản trị nhưng tôi không rõ liệu tôi có cần bật điều gì đó ở phía quản trị viên hay không.

Trả lời

14

tôi đã tìm ra những gì tôi cần phải làm, có rất nhiều ví dụ trên mạng nhưng tôi couldnt tìm thấy một đơn giản như thế này vì vậy hy vọng nó sẽ giúp người khác

$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; 
+0

công việc tốt đẹp :) bạn có thể chấp nhận câu trả lời của riêng bạn nếu bạn muốn;) – Ben

4

tôi có cái gì đó sẽ có giá trị hơn và dễ dàng cho bạn kiểm tra thư viện này.đó là một điều duy nhất đã tiết kiệm thời gian của tôi. Tôi thậm chí còn sử dụng mã của bạn nhưng trên đường mã đã khó cho tôi. nhưng thư viện này là great.try nó .. :)

https://github.com/FayP/JIRA-php

cho tôi biết nếu bạn cần bất kỳ sự giúp đỡ về cách sử dụng này.

3

Tiếp theo trang này ...

https://developer.atlassian.com/jiradev/api-reference/jira-rest-apis/jira-rest-api-tutorials/jira-rest-api-example-basic-authentication

Chúng ta cần phải sử dụng xác thực tiêu đề những ngày mà trông - sửa đổi các ví dụ trong tread này - như:

$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"; 
Các vấn đề liên quan