API-интерфейс Trello PHP Curl

Я пытаюсь интегрировать/заменить свою очередь веб-редактирования в Trello.

Я создал организацию, которая не является общедоступной, но создал токен для доступа на чтение/запись.

Я не видел хорошей PHP-оболочки для Trello API (просмотрел две доступные и не смог заставить их работать для моих целей).

В любом случае, то, что я хотел бы сделать, это предоставить довольно элементарный доступ для чтения и вставки карточек в определенный список.

Я дошел до использования API для возврата результатов списка, используя следующее:

https://api.trello.com/1/lists/[mylistID]/cards?key=[myappkey]&token=[mytoken]

В результате я получаю именно то, что хочу, json карточек в списке.

Теперь я пытаюсь воссоздать это в PHP с помощью CURL, и я получаю ответ об ошибке несанкционированного или неправильного запроса от того, что я пытаюсь сделать в следующем коде:

$url = "https://api.trello.com/1/lists/[myboardID]/cards";
$trello_key          = 'mykey';
$trello_list_id      = 'mylistid';
$trello_member_token = 'mytoken'; 

$fields = "key=$trello_key&token=$trello_member_token&name=$name&idList=$trello_list_id";
e
# init curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLINFO_HEADER_OUT, TRUE); // make sure we see the sended header afterwards
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 0);
curl_setopt($ch, CURLOPT_POST, 1);

# dont care about ssl
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

# download and close
$output = curl_exec($ch);
$request =  curl_getinfo($ch, CURLINFO_HEADER_OUT);
$error = curl_error($ch);
curl_close($ch);

Поэтому я просто смотрю, знает ли кто-нибудь, что я делаю неправильно. Я чувствую, что это должно быть просто, но я потратил на это пару часов и думаю, что мне нужна помощь. Дайте мне знать, если у вас есть идеи.

{я пропустил очевидные ссылки на мой ключ API, токен, BoardID и т. д.}


person mmundiff    schedule 17.01.2013    source источник
comment
Я попробовал и первая ошибка: `Обратите внимание: неопределенная переменная: имя в D:\LAMP\www\a.php в строке 21. Check is $name` определено.   -  person K-Gun    schedule 17.01.2013
comment
извините, мы можем убрать имя из уравнения. Во всяком случае, я думаю, что решил это, но все еще ищу, как именно разобрать ответ.   -  person mmundiff    schedule 17.01.2013


Ответы (1)


Это действительно работает для меня. Я пытался использовать POST вместо GET по умолчанию с CURL. Все еще работаю над разбором ответа, но, похоже, я на правильном пути. Получил "200 ОК" в ответ.

$url = 'https://api.trello.com/1/lists/[myListID]/cards?key=[MyApiKey]&token=[myToken]';

# init curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
//curl_setopt($ch, CURLOPT_POSTFIELDS, $encoded_fields);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLINFO_HEADER_OUT, TRUE); // make sure we see the sended header afterwards
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 0);
//curl_setopt($ch, CURLOPT_POST, 1);

# dont care about ssl
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

# download and close
$output = curl_exec($ch);
$request =  curl_getinfo($ch, CURLINFO_HEADER_OUT);
$error = curl_error($ch);
curl_close($ch);

echo 'This is output = '.$output .'<br />';
echo 'This is request = '.$request .'<br />';
echo 'This is error = '.$error .'<br />';
person mmundiff    schedule 17.01.2013