PHPスニペット バックログAPI関係
nulabバックログのAPIをPHPで叩くときのスニペット
APIキー(個人設定のAPIから取得可能)と割り当てられたURLを用意してください。
プロジェクト一覧の取得
管理者権限のAPIキーで全部所得
function get_projects( $baseurl ,$apiKey){
$api_url = $baseurl."/api/v2/projects?apiKey=".$apiKey."&all=true";
$headers = array('Content-Type:application/x-www-form-urlencoded');
$context = array(
'http' => array(
'method' => 'GET',
'header' => $headers,
'ignore_errors' => true,
)
);
$response = file_get_contents($api_url, false, stream_context_create($context));
return json_decode($response,true);
}
ユーザー一覧の取得
全員分取得
function get_users( $baseurl ,$apiKey){
$api_url = $baseurl."/api/v2/users?apiKey=".$apiKey."";
$headers = array('Content-Type:application/x-www-form-urlencoded');
$context = array(
'http' => array(
'method' => 'GET',
'header' => $headers,
'ignore_errors' => true,
)
);
$response = file_get_contents($api_url, false, stream_context_create($context));
return json_decode($response,true);
}
種別一覧の取得
種別IDを名寄せしたいときに。$keyにはプロジェクトのID または プロジェクトキー
function get_issueTypes( $baseurl ,$apiKey,$key){
$api_url = $baseurl."/api/v2/projects/".$key."/issueTypes?apiKey=".$apiKey."&all=true";
$headers = array('Content-Type:application/x-www-form-urlencoded');
$context = array(
'http' => array(
'method' => 'GET',
'header' => $headers,
'ignore_errors' => true,
)
);
$response = file_get_contents($api_url, false, stream_context_create($context));
return json_decode($response,true);
}
バージョン(マイルストーン)一覧の取得
ヴァージョンはレッドマインの名残ですかね。>
$keyにはプロジェクトのID または プロジェクトキー
$keyにはプロジェクトのID または プロジェクトキー
function get_versions( $baseurl ,$apiKey,$key){
$api_url = $baseurl."/api/v2/projects/".$key."/versions?apiKey=".$apiKey."&all=true";
$headers = array('Content-Type:application/x-www-form-urlencoded');
$context = array(
'http' => array(
'method' => 'GET',
'header' => $headers,
'ignore_errors' => true,
)
);
$response = file_get_contents($api_url, false, stream_context_create($context));
return json_decode($response,true);
}
プロジェクトの追加
オプションが多いのでリンク先を参考に変更してほしい。
function create_project( $baseurl ,$apiKey,$name ,$key,$chartEnabled,$projectLeaderCanEditProjectLeader,$subtaskingEnabled,$textFormattingRule){
$api_url = $baseurl."/api/v2/projects?apiKey=".$apiKey."&";
$params = array(
'name' => $name,
'key' => $key,
'chartEnabled' => $chartEnabled,//チャートを使用するかどうか
'projectLeaderCanEditProjectLeader' => $projectLeaderCanEditProjectLeader, //プロジェクト管理者も他のプロジェクト管理者を指定可能にする
'subtaskingEnabled' => $subtaskingEnabled , // 親子課題を使用するかどうか
'textFormattingRule' => $textFormattingRule , // テキスト整形のルール backlog または markdown
);
$url = $api_url. http_build_query($params, '','&');
$headers = array('Content-Type:application/x-www-form-urlencoded');
$context = array(
'http' => array(
'method' => 'POST',
'header' => $headers,
'ignore_errors' => true,
)
);
$response = file_get_contents($url, false, stream_context_create($context));
return json_decode($response,true);
}
プロジェクトチームの追加
チーム(ユーザーグループ)ごとプロジェクトに追加したいときはこれで
function add_project_teams( $baseurl ,$apiKey,$key,$teamId){
$api_url = $baseurl."/api/v2/projects/".$key."/teams?apiKey=".$apiKey."&";
$params = array(
'teamId' => $teamId
);
$url = $api_url. http_build_query($params, '','&');
$headers = array('Content-Type:application/x-www-form-urlencoded');
$context = array(
'http' => array(
'method' => 'POST',
'header' => $headers,
'ignore_errors' => true,
)
);
$response = file_get_contents($url, false, stream_context_create($context));
return json_decode($response,true);
}
バージョン(マイルストーン)の追加
function add_project_versions( $baseurl ,$apiKey,$key,$name,$description = ""){
$api_url = $baseurl."/api/v2/projects/".$key."/versions?apiKey=".$apiKey."&";
$params = array(
'name' => $name,
'description'=>$description
);
$url = $api_url. http_build_query($params, '','&');
$headers = array('Content-Type:application/x-www-form-urlencoded');
$context = array(
'http' => array(
'method' => 'POST',
'header' => $headers,
'ignore_errors' => true,
)
);
$response = file_get_contents($url, false, stream_context_create($context));
return json_decode($response,true);
}
バージョン(マイルストーン)情報の更新
function set_project_versions( $baseurl ,$apiKey,$key,$version_id,$name,$description = "",$startDate = "", $releaseDueDate = ""){
$api_url = $baseurl."/api/v2/projects/".$key."/versions/".$version_id."?apiKey=".$apiKey."&";
$params = array(
'name' => $name,
'description'=>$description,
'startDate'=>$startDate,
'releaseDueDate'=>$releaseDueDate
);
$url = $api_url. http_build_query($params, '','&');
$headers = array('Content-Type:application/x-www-form-urlencoded');
$context = array(
'http' => array(
'method' => 'PATCH',
'header' => $headers,
'ignore_errors' => true,
)
);
$response = file_get_contents($url, false, stream_context_create($context));
//echo $response;
return json_decode($response,true);
}
課題の追加
課題モデルを作っておいた
class CmBacklogKadai{
public $id;
public $kadai_group;
public $kenmei;
public $syousai;
public $kaisibi;
public $kigenbi;
public $yoteijikan;
public $jissekijikan;
public $syubetu;
public $kategori;
public $hassei_v;
public $mairusuton;
public $yuusendo;
public $tantouyuza;
public $oyakadai;
public $kaisibinohonnjitukaranotuika;
public $kigennbinokaisibikaranotuika;
/**
* @return mixed
*/
public function getId()
{
return $this->id;
}
/**
* @return mixed
*/
public function getKadai_group()
{
return $this->kadai_group;
}
/**
* @return mixed
*/
public function getKenmei()
{
return $this->kenmei;
}
/**
* @return mixed
*/
public function getSyousai()
{
return $this->syousai;
}
/**
* @return mixed
*/
public function getKaisibi()
{
return $this->kaisibi;
}
/**
* @return mixed
*/
public function getKigenbi()
{
return $this->kigenbi;
}
/**
* @return mixed
*/
public function getYoteijikan()
{
return $this->yoteijikan;
}
/**
* @return mixed
*/
public function getJissekijikan()
{
return $this->jissekijikan;
}
/**
* @return mixed
*/
public function getSyubetu()
{
return $this->syubetu;
}
/**
* @return mixed
*/
public function getKategori()
{
return $this->kategori;
}
/**
* @return mixed
*/
public function getHassei_v()
{
return $this->hassei_v;
}
/**
* @return mixed
*/
public function getMairusuton()
{
return $this->mairusuton;
}
/**
* @return mixed
*/
public function getYuusendo()
{
return $this->yuusendo;
}
/**
* @return mixed
*/
public function getTantouyuza()
{
return $this->tantouyuza;
}
/**
* @return mixed
*/
public function getOyakadai()
{
return $this->oyakadai;
}
/**
* @return mixed
*/
public function getKaisibinohonnjitukaranotuika()
{
return $this->kaisibinohonnjitukaranotuika;
}
/**
* @return mixed
*/
public function getKigennbinokaisibikaranotuika()
{
return $this->kigennbinokaisibikaranotuika;
}
/**
* @param mixed $id
*/
public function setId($id)
{
$this->id = $id;
}
/**
* @param mixed $kadai_group
*/
public function setKadai_group($kadai_group)
{
$this->kadai_group = $kadai_group;
}
/**
* @param mixed $kenmei
*/
public function setKenmei($kenmei)
{
$this->kenmei = $kenmei;
}
/**
* @param mixed $syousai
*/
public function setSyousai($syousai)
{
$this->syousai = $syousai;
}
/**
* @param mixed $kaisibi
*/
public function setKaisibi($kaisibi)
{
$this->kaisibi = $kaisibi;
}
/**
* @param mixed $kigenbi
*/
public function setKigenbi($kigenbi)
{
$this->kigenbi = $kigenbi;
}
/**
* @param mixed $yoteijikan
*/
public function setYoteijikan($yoteijikan)
{
$this->yoteijikan = $yoteijikan;
}
/**
* @param mixed $jissekijikan
*/
public function setJissekijikan($jissekijikan)
{
$this->jissekijikan = $jissekijikan;
}
/**
* @param mixed $syubetu
*/
public function setSyubetu($syubetu)
{
$this->syubetu = $syubetu;
}
/**
* @param mixed $kategori
*/
public function setKategori($kategori)
{
$this->kategori = $kategori;
}
/**
* @param mixed $hassei_v
*/
public function setHassei_v($hassei_v)
{
$this->hassei_v = $hassei_v;
}
/**
* @param mixed $mairusuton
*/
public function setMairusuton($mairusuton)
{
$this->mairusuton = $mairusuton;
}
/**
* @param mixed $yuusendo
*/
public function setYuusendo($yuusendo)
{
$this->yuusendo = $yuusendo;
}
/**
* @param mixed $tantouyuza
*/
public function setTantouyuza($tantouyuza)
{
$this->tantouyuza = $tantouyuza;
}
/**
* @param mixed $oyakadai
*/
public function setOyakadai($oyakadai)
{
$this->oyakadai = $oyakadai;
}
/**
* @param mixed $kaisibinohonnjitukaranotuika
*/
public function setKaisibinohonnjitukaranotuika($kaisibinohonnjitukaranotuika)
{
$this->kaisibinohonnjitukaranotuika = $kaisibinohonnjitukaranotuika;
}
/**
* @param mixed $kigennbinokaisibikaranotuika
*/
public function setKigennbinokaisibikaranotuika($kigennbinokaisibikaranotuika)
{
$this->kigennbinokaisibikaranotuika = $kigennbinokaisibikaranotuika;
}
}
function add_project_issues( $baseurl ,$apiKey,$backlog_projectId,CmBacklogKadai $kadai_model){
$api_url = $baseurl."/api/v2/issues?apiKey=".$apiKey."&";
$params = array(
'projectId' => $backlog_projectId,
'summary' => $kadai_model->getKenmei(),
'parentIssueId' => $kadai_model->getOyakadai(),
'description' => $kadai_model->getSyousai(),
'startDate' => $kadai_model->getKaisibi(),
'dueDate' => $kadai_model->getKigenbi(),
'issueTypeId' => $kadai_model->getSyubetu(),
'milestoneId[]' => $kadai_model->getMairusuton(),
'priorityId' => $kadai_model->getYuusendo(),
'assigneeId' => $kadai_model->getTantouyuza()
);
$url = $api_url. http_build_query($params, '','&');
$headers = array('Content-Type:application/x-www-form-urlencoded');
$context = array(
'http' => array(
'method' => 'POST',
'header' => $headers,
'ignore_errors' => true,
)
);
$response = file_get_contents($url, false, stream_context_create($context));
//echo $backlog_projectId."";
//echo $response;
return json_decode($response,true);
}
コメント
コメントを投稿