我正在尝试将todo添加到todolist。我在这里有一个非常基本的功能,我知道这是经过认证的,如果我的密码错误,它确实会允许我拒绝错误。当我使用所有正确的信息运行时,它会返回一个空字符串,而不是在创建todo下在此处描述的内容,而不会添加任务。
我确实可以按照我的期望进行操作,但是帖子似乎没有任何效果
这有问题,或者另一种获取有关有效内容的详细信息的方法?
$username = [REDACTED];
$password = [REDACTED];
$userid = [REDACTED];
$projectid = [REDACTED];
$todolistid = [REDACTED];
$todo = "make basecamp integration work!";
$due = date('Y-m-d' , strtotime('+3 weeks'));
$url = "https://basecamp.com/".$userid."/api/v1/projects/".$projectid."/todolists/".$todolistid."/todos.json";
$data = '{
"content": "'.$todo.'",
"due_at": "'.$due.'",
"assignee": {
"id": '.$userid.',
"type": "Person"
}
}';
$cheaders = array(
'User-Agent: '.$username,
'Content-Type: application/json; charset=utf-8'
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, $username.":".$password);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_VERBOSE, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER,$cheaders);
if ($data){
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
var_dump( curl_exec($curl) );
我目前正在从事一个类似的项目,这是我到目前为止所拥有的,也许它会帮助您:
检索项目数据
$appName = 'AppName';
$appContact = 'MyAddress';
$basecampAccountId = 'MyAccountID';
$basecampUsername = 'MyUsername';
$basecampPassword = 'MyPassword';
$baseUrl = "https://basecamp.com/XXXXXXXXXX/api/v1";
$url= $baseUrl.'/projects.json';
$credentials = "$basecampUsername:$basecampPassword";
$helloHeader = "User-Agent: $appName ($appContact)";
/*echo $url.'<br>'; //Echoes the url of the imported projects
/*echo $credentials.'<br>';*/ //Echoes the credentials of the person signed in
/*echo $helloHeader.'<br>';*/ //Echoes the email address of the person signed in
$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); //optional
curl_setopt($ch, CURLOPT_MAXREDIRS, 3); //optional
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); //optional
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); //optional
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); //optional
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);
检索待办事项列表项目
$todo = $response;
$todophp = json_decode($todo);
echo "$response";
echo "<br/><br/>";
print_r(array_values($todophp));
echo "<br/><br/>";
foreach($todophp as $tododata)
{
echo "<ul>";
echo "<li>".$tododata->name."</li>";
echo "<li>".$tododata->id."</li>";
echo "<li>".$tododata->description."</li>";
/*echo "<li>".$tododata->;*/
$url= $baseUrl.'/projects/'.$tododata->id.'/todolists.json';
$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); //optional
curl_setopt($ch, CURLOPT_MAXREDIRS, 3); //optional
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); //optional
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); //optional
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); //optional
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);
$todo = $response;
$todophp = json_decode($todo);
$todo_remain = $todophp[0]->remaining_count;
$todo_completed = $todophp[0]->completed_count;
$todo_total = $todo_remain + $todo_completed;
echo "<BR>";
echo "<BR>";
echo "Remaining To-Do Items:";
echo "<BR>";
echo $todo_remain;
echo "<BR>";
echo "Completed To-Do Items:";
echo "<BR>";
echo $todo_completed;
echo "<BR>";
echo "Total To-Do Items:";
echo "<BR>";
echo $todo_total;
echo "<BR>";
echo "Remaining percentage is: <BR>";
echo round(($todo_remain/$todo_total)*100);
echo "%";
echo "<BR>";
echo "Completed percentage is: <BR>";
echo round(($todo_completed/$todo_total)*100);
echo "%";
echo "</ul>";
}
让我知道;)祝你好运(别忘了更改凭据等)