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); }
コメント
コメントを投稿