Я пытаюсь подключиться к basecamp api (json), используя PHP + cURL, но все мои попытки потерпели неудачу, и я не уверен, почему. Конечной целью является создание панели мониторинга, которая отображает информацию из проектов basecamp членам команды через http.
<?php $basecamp_url = 'https://basecamp.com/xxxxxx/api/v1'; $username = 'username'; $password = 'pass'; $session = curl_init(); curl_setopt($session, CURLOPT_URL, $basecamp_url.'/projects.xml'); curl_setopt($session, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($session, CURLOPT_HTTPGET, 1); curl_setopt($session, CURLOPT_HEADER, false); curl_setopt($session, CURLOPT_HTTPHEADER, array('Accept: application/json', 'Content-Type: application/json')); curl_setopt($session, CURLOPT_RETURNTRANSFER, true); curl_setopt($session,CURLOPT_USERPWD,$username . ":" . $password); $response = curl_exec($session); curl_close($session); echo '<pre>'; print_r($response); ?>
Я работаю над очень похожим проектом, каким вы сейчас. Сначала вы должны создать приложение Basecamp. Чем ниже приведен код:
$appName = 'your app name'; $appContact = 'your app email; $basecampAccountId = 'xxxxx'; $basecampUsername = 'youremailhere'; $basecampPassword = 'yourpassword here'; $baseUrl = "https://basecamp.com/$basecampAccountId/api/v1"; $url= $baseUrl.'/projects.json'; $credentials = "$basecampUsername:$basecampPassword"; $helloHeader = "User-Agent: $appName ($appContact)"; echo $url.'<br>'; echo $credentials.'<br>'; echo $helloHeader.'<br>'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_USERPWD, $credentials); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_MAXREDIRS, 3); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_HTTPGET, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array($helloHeader)); $response = curl_exec($ch); $errno = curl_errno($ch); $error = curl_error($ch); curl_close($ch); print_r($response);