使用cURL和PHP的Basecamp API

使用cURL和PHP的Basecamp API,php,curl,basecamp,Php,Curl,Basecamp,我试图使用PHP+cURL连接basecamp api(json),但我所有的尝试都失败了,我不知道为什么。最终目标是构建一个仪表板,通过http将basecamp项目的信息显示给团队成员 <?php $basecamp_url = 'https://basecamp.com/xxxxxx/api/v1'; $username = 'username'; $password = 'pass'; $session = curl_init(); curl_setopt($session,

我试图使用PHP+cURL连接basecamp api(json),但我所有的尝试都失败了,我不知道为什么。最终目标是构建一个仪表板,通过http将basecamp项目的信息显示给团队成员

<?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='您的应用程序电子邮件;
$basecampAccountId='xxxxx';
$basecampUsername='youremailhere';
$basecampPassword='yourpassword here';
$baseUrl=”https://basecamp.com/$basecampAccountId/api/v1”;
$url=$baseUrl'/projects.json';
$credentials=“$basecampUsername:$basecampPassword”;
$helloHeader=“用户代理:$appName($appContact)”;
回显$url。“
”; 回显$credentials。“
”; echo$helloHeader.“
”; $ch=curl\u init($url); curl_setopt($ch,CURLOPT_USERPWD,$credentials); curl_setopt($ch,CURLOPT_头,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_超时,30); curl_setopt($ch,CURLOPT_HTTPGET,true); curl_setopt($ch,CURLOPT_HTTPHEADER,array($helloHeader)); $response=curl\u exec($ch); $errno=curl\u errno($ch); $error=curl\u error($ch); 卷曲关闭($ch); 打印(回复);
$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);