Как получить доступ к Atlassian с помощью переполнения стека

Я хочу получить контент из моего Atlassian с именем пользователя и паролем.

URL обычно выглядит так:

http://my-own-site.atlassian.net/wiki/pages/viewpage.action?spaceKey=TO&название = Any-Wiki-Title

Можно ли использовать PHP CURL получить контент с этой страницы?

Пока что я получаю только 401 ошибку проверки подлинности.

Я просмотрел Stackoverflow и все, что я получаю, — это как получить доступ к базовым страницам atlassian.com и bitbucket.org.

1

Решение

С помощью этого кода в php вы можете создавать страницы слияния:

<?php

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://localhost:8090/rest/api/content/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"type\":\"page\",\"title\":\"**inserttitle**\",\"space\":{\"key\":\"**insertspace**\"},\"ancestors\":[{\"type\":\"page\",\"id\":**insertancestor**}],\"body\":{\"storage\":{\"value\":\"<p>This is a new page</p>\",\"representation\":\"storage\"}}}");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, "**insertusername**" . ":" . "**insertpassword**");

$headers = array();
$headers[] = "Content-Type: application/json";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);

?>

И с помощью этого кода вы можете получить контент от Confluence:

<?php

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost:8090/rest/api/content/**insertid**");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_USERPWD, "**insertusername**" . ":" . "**insertpassword**");
$headers = array();
$headers[] = "Content-Type: application/json";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);

?>



echo $result;

Изменить параметр. Я пометил слова со вставкой *

1

Другие решения

Да, конечно, можно получить доступ к продуктам Atlassian, используя PHP и cURL. Я делаю это все время для создания / изменения проблем Jira

Вам нужно будет найти / написать библиотеку (или набор библиотек), которая позволит вам получить доступ к вызовам API REST. В моем случае я написал базовую библиотеку REST, которая затем может быть унаследована для создания Jira, Confluence, любой другой сервис REST библиотеки

Найдите сайт документации Atlassian, чтобы найти REST API для продукта, который вы используете (я полагаю, Confluence в вашем случае)

Не забывайте, что REST API использует методы GET, POST, PUT и DELETE, поэтому ваша библиотека должна будет обрабатывать все эти

Что касается вашей ошибки, я *считать* ваш логин должен быть разрешен доступ к вызовам API

1

To retrieve any existing content properties for a piece of content, use url as https://your-domain.atlassian.net/wiki/rest/api/content/{content_ID}
$curl = curl_init();
$post = array(
"id" => "{content_ID}",
"type" => "{content_ID}", //Ex. page
"title" => "{content_Title}",
"space" => ["key" => "{spaces_key}"],
"body" => ["storage" => ["value" => "<p>Here comes the other text</p>", "representation" => "storage"]],
"version" => ["number" => 15]
);
curl_setopt_array($curl, array(
CURLOPT_URL => "https://your-domain.atlassian.net/wiki/rest/api/content/{content_ID}?expand=metadata.properties.myprop,space,body.view,version,container",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 300,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => json_encode($post),
CURLOPT_HTTPHEADER => array(
"authorization: Basic {base64 of (username:password)}",
"content-type: application/json",
'Accept: application/json'
),
));
$result = curl_exec($curl);
curl_close($curl);
0