cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Announcements
Want to learn some quick and useful tips to make your day easier? Check out how Calvin uses Replay to get feedback from other teams at Dropbox here.

Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

OAuth2 access token request - Basic authentication not working

OAuth2 access token request - Basic authentication not working

pineapps
Helpful | Level 5

I am trying to integrate Dropbox in my webservice. However I decided to use a direct integration instead of any APIs as I need a limited number of functions only and not used to code object orientated in PHP.

 

For any reason my authentication token handling is not working. I figured out, something is wrong with the basic authentifiation, as some other functions which should work with basic as well as bearer authentification do only work with the last one mentioned.

 

function dropboxAuthentication($code){

    global $authToken;
$parameters['code']=$code;
$parameters['grant_type']="authorization_code"; $parameters['redirect_uri']="https://myurl.com/file.php"; // Create the context for the request $context = stream_context_create(array( 'http' => array( 'method' => 'POST', 'header' => 'Authorization: {Basic '.base64_encode("my app id:my app secret").'}\r\n'. 'Content-Type: application/json\r\n', 'content' => json_encode($parameters) ) )); // Send the request $response = file_get_contents('https://api.dropboxapi.com/oauth2/token', FALSE, $context); // Check for errors if($response === FALSE){ die('Error'); } // Decode the response $result=json_decode($response, TRUE); return $result['code']; }

 

The file accessed after the login calls the function with the temporary code given. The temporary code is received well.

 

The result (response body) is always 

Error

I checked the response code which is a HTTP Error 400.

 

Please find the HTTP response headers attached

Spoiler
HTTP/1.1 400 Bad RequestServer: nginxDate: Fri, 05 Jan 2018 21:15:28 GMTContent-Type: application/jsonConnection: closeX-Dropbox-Request-Id: 7b42fa04f93fd7493deb1c7a34847cdeX-Frame-Options: DENYContent-Security-Policy: sandbox; frame-ancestors 'none'X-Content-Type-Options: nosniffContent-Disposition: attachment; filename='error'

 

Thank you very much for your support!

2 Replies 2

pineapps
Helpful | Level 5

I managed to get additional information from the HTTP request:

 

{"url":"https:\/\/api.dropboxapi.com\/oauth2\/token","content_type":"application\/json","http_code":400,"header_size":385,"request_size":350,"filetime":-1,"ssl_verify_result":0,"redirect_count":0,"total_time":0.287188,"namelookup_time":0.004172,"connect_time":0.018384,"pretransfer_time":0.053378,"size_upload":23,"size_download":97,"speed_download":337,"speed_upload":80,"download_content_length":-1,"upload_content_length":23,"starttransfer_time":0.287049,"redirect_time":0,"redirect_url":"","primary_ip":"162.125.66.7","certinfo":[],"primary_port":443,"local_ip":"85.13.153.199","local_port":45981}
Last data received
:{"error_description": "No auth function available for given request", "error": "invalid_request"}

Greg-DB
Dropbox Staff
It looks like this is a duplicate, so I'm closing this in favor of:

https://www.dropboxforum.com/t5/API-support/OAuth2-access-token-request-Basic-authentication-not-wor...
Need more support?
Who's talking

Top contributors to this post

  • User avatar
    Greg-DB Dropbox Staff
  • User avatar
    pineapps Helpful | Level 5
What do Dropbox user levels mean?