Sample oauth token php code

I'm just getting started and using PHP to call the API. I'm trying to get an OAuth token but the server response is empty including no error message. I've also tried using the Chroma Advanced REST Client and I get the same lack of response. Do I need separate permissions? Any assistance would be welcomed.

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,"https://{instance}/app/oauth/token");

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json'
));

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_USERPWD, "{user}:{pass}");

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);

$response = curl_exec($ch);

$curl_errno = curl_errno($ch);

curl_close($ch);

Tagged:

Best Answer

  • It looks like you're using basic auth instead of posting the credentials in the request's body. As a reference Postman generates the following code for php.

    <?php
    $curl = curl_init();
    curl_setopt_array($curl, array(
    CURLOPT_URL => "https://{instance}/app/oauth/token",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => "{\"username\":\"yourusername\", \"yourpassword\":\"{pass}\"}",
    CURLOPT_HTTPHEADER => array(
    "cache-control: no-cache",
    "content-type: application/json"
    ),
    ));
    $response = curl_exec($curl);
    $err = curl_error($curl);
    curl_close($curl);
    if ($err) {
    echo "cURL Error #:" . $err;
    } else {
    echo $response;
    }

Answers

  • Correct. Same password. Did you omit the internal brackets?

    {"username":"your_username", "password":"your_password"}