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 または プロジェクトキー
    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);
    }
    




コメント

このブログの人気の投稿

ネットギア WiFi6 無線lan 法人向け メッシュ アクセスポイント WAX610の初期設定

Raspberry Pi 4 でデュアルディスプレイの拡張・複製

【更新】福祉施設向け事務用PC選定