0

todolist に todo を単純に追加しようとしています。ここには非常に基本的な機能があります。これは認証であることがわかっています。パスワードが間違っていると、許可が拒否されたというエラーが表示されます。すべての正しい情報で実行すると、Todo の作成で説明されている内容ではなく、空の文字列が返され、タスクが追加されません。

期待どおりに GET 操作を実行できますが、POST は何の効果もないようです

これに何か問題がありますか、または何が機能しているのかについてより詳細な情報を取得する別の方法はありますか?

    $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) );
4

1 に答える 1