2016-09-23 15 views
6

Tôi có thể lấy dữ liệu từ API Trello sử dụng này:API Trello: nhận các thành viên, tệp đính kèm và thông tin thẻ trong một cuộc gọi?

private function get_card_info($card_id) { 
    $client =   new \GuzzleHttp\Client(); 
    $base =   $this->endpoint . $card_id; 
    $params =   "?key=" . $this->api_key . "&token=" . $this->token;  
    $cardURL =  $base . $params; 
    $membersURL =  $base . "/members" . $params; 
    $attachmentsURL = $base . "/attachments" . $params; 

    $response = $client->get($cardURL); 
    $this->card_info['card'] = json_decode($response->getBody()->getContents()); 

    $response = $client->get($membersURL); 
    $this->card_info['members'] = json_decode($response->getBody()->getContents()); 

    $response = $client->get($attachmentsURL);  
    $this->card_info['attachments'] = json_decode($response->getBody()->getContents()); 
} 

Tuy nhiên, điều này được chia thành ba cuộc gọi. Có cách nào để lấy thông tin thẻ, thông tin thành viên và thông tin đính kèm tất cả trong một cuộc gọi không? Các docs đề cập đến sử dụng &fields=name,id, nhưng điều đó dường như chỉ giới hạn những gì được trả về từ cuộc gọi cơ bản đến điểm cuối cards.

Thật vô lý khi phải nhấn API 3 lần mỗi lần tôi cần thông tin thẻ, nhưng tôi không thể tìm thấy bất kỳ ví dụ nào thu thập tất cả những gì cần thiết.

Trả lời

4

Trello trả lời với tôi, và tuyên bố rằng họ sẽ trả lời giống như Vladimir đã làm. Tuy nhiên, câu trả lời duy nhất tôi nhận được từ đó là dữ liệu thẻ ban đầu, không có tài liệu đính kèm và các thành viên. Tuy nhiên, họ cũng hướng dẫn tôi đến this blog post bao gồm các yêu cầu theo đợt. Họ dường như đã xóa nó khỏi các tài liệu vì sự nhầm lẫn mà nó tạo ra.

Để tóm tắt các thay đổi, về cơ bản bạn thực hiện cuộc gọi đến /batch và thêm tham số GET urls với danh sách điểm cuối được phân cách bằng dấu phẩy để truy cập. Phiên bản cuối cùng hoạt động đã kết thúc như sau:

private function get_card_info($card_id) { 
    $client =   new \GuzzleHttp\Client(); 
    $params =   "&key=" . $this->api_key . "&token=" . $this->token; 

    $cardURL = "/cards/" . $card_id; 
    $members = "/cards/" . $card_id . "/members"; 
    $attachmentsURL = "/cards/" . $card_id . "/attachments"; 

    $urls = $this->endpoint . implode(',', [$cardURL, $members, $attachmentsURL]) . $params; 

    $response = $client->get($urls); 
    $this->card = json_decode($response->getBody()->getContents(), true); 
} 
5

Hãy thử nhấn API với các thông số sau:

/cards/[id]?fields=name,idList&members=true&member_fields=all&& attachments=true&&attachment_fields=all

+0

Tôi sẽ kiểm tra ngay khi tôi về nhà với máy tính xách tay cá nhân của mình. Đây có phải là tài liệu ở bất cứ đâu không? –

Các vấn đề liên quan