2013-03-11 50 views
0

我試圖用PHP + cURL連接到basecamp api(json),但是我所有的嘗試都失敗了,我不知道爲什麼。最終目標是構建一個儀表板,通過http顯示來自basecamp項目的信息給團隊成員。使用cURL和PHP的Basecamp API

<?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); 
?> 
+0

而問題是? – Ares 2013-03-11 00:44:41

回答

0

我正在研究一個非常類似的項目,因爲您現在正在進行這項工作。你必須先創建一個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); 
+0

我使用了相同的代碼,但沒有得到任何迴應。 – 2016-12-29 12:59:15