2012-11-21 36 views
5

ठीक है Ive ने इसे कहीं भी नहीं मिला, इसे थोड़ी देर तक छोड़ दिया, कुछ और प्रयासों को कुल्ला और दोहराने की कोशिश की और कई हफ्ते बाद जिरास एपीआई तक पहुंचने के करीब नहीं है मुझे आशा है कि आप महान लोग मेरी मदद कर सकते हैं।फ़िल्टर पर सुपर सरल रिपोर्ट चलाने के लिए एटलसियन जिरा रीस्ट एपीआई

मैं चाहता हूं कि मूल रूप से लॉगिन करना है, एक मील का पत्थर में सभी खुली बग जैसे साधारण फ़िल्टर से जानकारी प्रदर्शित करें। एक बार जब मैं बहुत दूर बीमार दस्तावेज

आईएम सरल PHP का उपयोग करने की उम्मीद कर रहा हूं, इसलिए मैं PHP के लिए नया हूं इसलिए कोडिंग जितना जटिल होगा उतना ही जटिल होगा जितना कि इसे समझना मेरे लिए होगा।

यह स्क्रिप्ट निकटतम Ive सफल होने के लिए आते हैं है:

<?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); 
} 
?> 

यह http://mysite.atlassian.net/browse/

पर बनाए गए नए मुद्दे रिटर्न लेकिन जब मैं वहाँ में var_dump ($ परिणाम) कर दिया है कि बस अशक्त तो रिटर्न मुझे पता नहीं है कि जिरा यूआरएल गलत है या मेरा पासवर्ड है या यदि यह नया आराम एपीआई के लिए पुराना कोड है।

अगर मैं एपीआई को केवल 1 सरल क्वेरी कर सकता हूं और मेरे PHP पेज पर कुछ भी लौटा सकता हूं तो मैं एक खुश कैंपर होगा। उपर्युक्त उदाहरण एक नया मुद्दा बनाता है, यह केवल उदाहरण है जिसका उपयोग मैं कर रहा था लेकिन किसी भी प्रकार के डेटा को वापस करने के साथ ठीक हूं, इसलिए मेरा मुख्य मुद्दा एक वैध कनेक्शन प्राप्त कर रहा है और कुछ जानकारी लौटा रहा है, इसलिए मुझे इसकी काम पता है और कुछ अलग-अलग चीजों को आजमाने की कोशिश नहीं करनी चाहिए फिर।

मेरे पास व्यवस्थापक पहुंच है लेकिन मुझे स्पष्ट नहीं था कि मुझे व्यवस्थापक पक्ष पर कुछ सक्षम करने की आवश्यकता है या नहीं।

उत्तर

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

अच्छा काम :) यदि आप चाहें तो आप अपना उत्तर स्वीकार कर सकते हैं;) – Ben

4

मैं कुछ है कि वह ज्यादा मूल्यवान होगा है किसी को मदद करता है सके और आपके लिए यह लाइब्रेरी जांचना आसान है। यह एकमात्र चीज थी जिसने मेरा समय बचाया। मैंने आपके कोड का भी उपयोग किया लेकिन जिस तरह से कोड मेरे लिए मुश्किल था। लेकिन इस पुस्तकालय यह great.try है .. :)

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

तुम ऐसा कैसे उपयोग करने के लिए पर किसी भी मदद की जरूरत है मुझे पता है।

3
इस पृष्ठ पर बाद

...

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

हम हैडर प्रमाणीकरण का उपयोग करने की जरूरत है इन दिनों जो लग रहा है - यह चलने में उदाहरण को संशोधित - जैसे:

$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";