자체 시스템에서 Trello로 카드를 만드는 기능 구현

18864 단어 TrelloPHPapi
이 기사에서는 다음을 구현하는 방법을 설명합니다.
· 자사 시스템 내에서 특정 조작을 할 때 Trello에 카드 생성

기능을 구현하기 위해 Trello API를 사용합니다.
사용할 때까지의 절차를 부드럽게 설명합니다.
덧붙여서 여기서 사용하는 것은 모두 이하의 공식 사양서에 기재되어 있습니다.
htps : //로 ゔぇぺぺr. 아 t ぁしあん. 이 m / c ぉ d / t r / st / 아피 g 로우 p 아 c 치온 s /

우선 앞서, 얼마 전 투고한 기사의 1~5의 설정을 완료해 주세요.
htps : // 이 m / ぉ ぃ ん ゔ ぁ ち ん / ms / 8 268 또는 b1 06572bdc

1. 게시할 대상 보드의 ID를 가져옵니다.
명령 프롬프트와 터미널에서 다음 명령을 실행합시다.
curl "https://trello.com/1/members/[ユーザ名]/boards?key=[上記記事の3で表示されたキー]&token=[上記記事の5で表示されたトークン]&fields=name"


"Trello에 오신 것을 환영합니다""테스트"라는 두 개의 보드가 표시되었습니다.
여기에서는 예로서 「테스트」의 보드로 합시다.
'테스트' id를 복사해 둡니다.

2. 타겟이 되는 보드는 취득할 수 있었습니다만 어느 리스트에 카드를 작성하는지에 대해서, 여기로부터는 PHP의 처리로 가고 싶습니다.
(작성처 리스트가 정해져 있는 경우는 날려 주세요.)
curl로 리스트 취득 API(Get Lists on a Board)를 두드려, 리스트 ID를 취득합니다.
        // ボードID
        $boardID = [でコピーしたid];

        // API キー
        $trelloApiKey = [上記記事の3で表示されたキー];

        // APIトークン
        $trelloApiToken = [上記記事の5で表示されたトークン];

        // リストの取得
        $getUrl = '';
        $getUrl = "https://api.trello.com/1/boards/" . $boardID . '/' . 'lists?key=' . $trelloApiKey . '&token=' . $trelloApiToken . '&fields=name';

        // 実行
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $getUrl);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $response = curl_exec($ch);
        curl_close($ch);

        // リスト情報を検証
        $decodeResponseArr = json_decode($response);
        foreach($decodeResponseArr as $key=>$value){
            // $value['name']にリストの名前、$value['id']にリストのIDが入っている
            $value = get_object_vars($value);
            if([何らかの条件]){
                // リストのIDを設定
                $listId = $value['id'];
                break;
            }
        }


3. 그런 다음 추가할 멤버를 가져옵니다.
(멤버가 정해지면 날려주세요.)
curl에서 목록 획득 API(Get the Members of a Board)를 두드려 멤버 ID를 가져옵니다.
        // ボードID
        $boardID = [でコピーしたid];

        // API キー
        $trelloApiKey = [上記記事の3で表示されたキー];

        // APIトークン
        $trelloApiToken = [上記記事の5で表示されたトークン];

        // メンバーの取得
        $getUrl = '';
        $getUrl = "https://api.trello.com/1/boards/" . $boardID . '/' . 'members?key=' . $trelloApiKey . '&token=' . $trelloApiToken;

        // 実行
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $getUrl);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $response = curl_exec($ch);
        curl_close($ch);

        // メンバー情報を検証
        $decodeResponseArr = json_decode($response);
        foreach($decodeResponseArr as $key=>$value){
            // $value['fullName']にメンバーの名前、$value['id']にメンバーのIDが入っている
            $value = get_object_vars($value);
            if([何らかの条件]){
                // メンバーのIDを設定(複数の場合はカンマ区切り)
                $members .= $value['id'] . ',';
            }
        }
        // 末尾のカンマを削除
        $members = rtrim($members, ",");

4. 그런 다음 추가할 라벨을 가져옵니다.
(라벨이 정해져 있는 경우는 날려 주세요.)
curl에서 레이블 획득 API(Get Labels on a Board)를 두드려 레이블 ID를 가져옵니다.
        // ボードID
        $boardID = [でコピーしたid];

        // API キー
        $trelloApiKey = [上記記事の3で表示されたキー];

        // APIトークン
        $trelloApiToken = [上記記事の5で表示されたトークン];

        // ラベルの取得
        $getUrl = '';
        $getUrl = "https://api.trello.com/1/boards/" . $boardID . '/' . 'labels?key=' . $trelloApiKey . '&token=' . $trelloApiToken;

        // 実行
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $getUrl);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $response = curl_exec($ch);
        curl_close($ch);

        // ラベル情報を検証
        $decodeResponseArr = json_decode($response);
        foreach($decodeResponseArr as $key=>$value){
            // $value['name']にラベルの名前、$value['id']にラベルのIDが入っている
            $value = get_object_vars($value);
            if([何らかの条件]){
                // ラベルのIDを設定(複数の場合はカンマ区切り)
                $labels .= $value['id'] . ',';
            }
        }
        // 末尾のカンマを削除
        $labels = rtrim($labels, ",");

5. 다음에 드디어 카드를 투고합니다.
curl에서 카드 생성 API(Create a new Card)를 두드리십시오.
        // ボードID
        $boardID = [でコピーしたid];

        // API キー
        $trelloApiKey = [上記記事の3で表示されたキー];

        // APIトークン
        $trelloApiToken = [上記記事の5で表示されたトークン];

        // カードの投稿
        $postUrl = "https://trello.com/1/cards";

        // POSTするデータ
        $postData  = "key=" . $trelloApiKey;
        $postData .= "&token=" . $trelloApiToken;
        $postData .= "&idList=" . $listId; // 2で設定したリストID
        $postData .= "&name=" . urlencode([カードのタイトル]); 
        $postData .= "&desc=" . urlencode([カードの説明]);
        $postData .= "&due=" . urlencode([カードの期限]); // 2020-07-10 19:00:00 のフォーマット
        $postData .= "&idMembers=" . $members; // 3で設定したメンバーID
        $postData .= "&idLabels=" . $labels; // 4で設定したラベルID

        $postUrl = $postUrl . '?' . $postData;

        // 実行
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $postUrl);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_POST, true);
        $response = curl_exec($ch);
        $httpcode = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
        curl_close($ch);

이제 패시트와 카드 투고를 할 수 있었습니다.
저는 구현 고생했지만 위 코드를 사용하면 매우 간단합니다.

꼭 해보세요!

좋은 웹페이지 즐겨찾기