2013-09-27 2 views
2

Я пытаюсь получить доступ к API отчетов Toggl.Toggl API для отчетов с PHP cURL

Я пробовал следовать в PHP с помощью cURL, который подключается к API, но дает следующее сообщение об ошибке: «Этот метод не может быть использован». Любой свет, почему это так, будет полезен, поскольку я очень новичок в веб-сервисах. Возможно, я пропущу что-то очевидное или совершенно не так, но извиняюсь, если это так.

<?php 
$userAgent = 'xxx';//username 
$token = 'xxx';//token 
$returned_content = get_data('https://toggl.com/reports/api/v2/summary?&workspace_id=[workspaceid]&since=2013-05-19&until=2013-05-20&user_agent=[username here]'); 
print_r($returned_content); 

function get_data($url) { 
    $ch = curl_init(); 
    $timeout = 5; 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
    curl_setopt($ch, CURLOPT_USERAGENT, $userAgent); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_USERPWD, $token.':api_token'); 
    $data = curl_exec($ch); 
    curl_close($ch); 
    return $data; 
} 
?> 

Редактировать: Я пробовал использовать другой подход. Если я запустил следующий код, я больше не получаю никаких сообщений об ошибках, поэтому код, похоже, выполняется, но я не могу распечатать ответ на экран. Есть ли что-то конкретное, что мне нужно сделать для просмотра вывода, отличного от print_r? (Toggl API возвращает JSON). Благодарю.

$ json = curl%20-v%20-u%[myapitoken]:api_token%20https://toggl.com/reports/api/v2/weekly?workspace_id=[id]&wsid=282507&since=2012-08-19&until=2013-09-20&user_agent=[user].json; print_r ($ json);

Редактировать: Наконец-то разрешено! Код выглядит следующим образом:

$workspace_id = '[id here]'; 
$user_agent = '[user agent here]'; // no spaces 
$api_token = '[token here]'; 
$report_url = 'https://toggl.com/reports/api/v2/weekly?user_agent='.$user_agent.'&since=2013-08-01&until=2013-09-01'; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); 
curl_setopt($ch, CURLOPT_USERPWD, $api_token . ':api_token'); 
curl_setopt($ch, CURLOPT_URL, $report_url . '&workspace_id=' . $workspace_id); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
$result = curl_exec($ch); 

$result = json_encode($result); 

Надеюсь, это поможет кому-то в будущем!

ответ

0

Как я понимаю, вы получаете это сообщение из-за CURLOPT_SSL_VERIFYPEER == FALSE.

Попытка удалить эту строку из кода:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 

Может быть, я ошибаюсь, но я думаю, что с помощью этой опции вы получаете «HTTP 501 Не реализовано» ошибка с сервера Toggl, который содержит точно такой же сообщение «Этот метод не может быть использован».

+0

Привет, Я пробовал это, но я получаю ту же ошибку, эта строка там, потому что это было предложено в SDK PHP https://github.com/davereid/toggl-php-sdk. И я тоже не могу работать. Спасибо, в любом случае! – SilverSarah