You might see that the Dropbox Community team have been busy working on some major updates to the Community itself! So, here is some info on what’s changed, what’s staying the same and what you can expect from the Dropbox Community overall.

Forum Discussion

Ghislain Sommervogel's avatar
Ghislain Sommervogel
Helpful | Level 5
2 months ago

.NET SDK Invalid request while calling ProcessCodeFlowAsync

Hi Team,

I'm trying to setup a permanent connection (= a refreshToken process) to my app using OauthPKCE.

For this, I'm using the sample code provided here: https://github.com/dropbox/dropbox-sdk-dotnet/blob/main/dropbox-sdk-dotnet/Examples/OAuthPKCE/Program.cs

I ran into a difficulty at this line:

      var tokenResult = await OAuthFlow.ProcessCodeFlowAsync(redirectUri, ApiKey, RedirectUri.ToString(), state);

My redirectURI seems to be correct (something like http://127.0.0.1:52475/authorize?code=gAY-xxxxxxxxxxxxxxxxxx), but the subsequent call to ProcessCodeFlowAsync results in an exception (Dropbox.Api.OAuth2Exception: 'invalid_request'). Error description says "client secret is missing". I guess it has something to do with the "App secret" setting, but I couldn't find where to provide this information in ProcessCodeFlowAsync, nor in the above instructions.

Any idea? Thanks a lot for your help.

Ghislain

  • If you're using the PKCE flow, the client secret shouldn't be required, so based on this error it looks like you're not actually in a PKCE flow.

     

    Have you modified the OAuthPKCE sample code? I just tried it as is (just plugging in an app key) and it is working for me.

     

    Can you confirm you set up the OAuthFlow object as a PKCEOAuthFlow as shown here and that the redirectUri you are passing in to ProcessCodeFlowAsync comes from the same flow started with the same object? (This error would occur if the authorization code you are exchanging wasn't actually retrieved using PKCE.)

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Staff rankDropbox Staff

    If you're using the PKCE flow, the client secret shouldn't be required, so based on this error it looks like you're not actually in a PKCE flow.

     

    Have you modified the OAuthPKCE sample code? I just tried it as is (just plugging in an app key) and it is working for me.

     

    Can you confirm you set up the OAuthFlow object as a PKCEOAuthFlow as shown here and that the redirectUri you are passing in to ProcessCodeFlowAsync comes from the same flow started with the same object? (This error would occur if the authorization code you are exchanging wasn't actually retrieved using PKCE.)

    • Ghislain Sommervogel's avatar
      Ghislain Sommervogel
      Helpful | Level 5

      Hello Greg,

      Thanks for leading me to the solution. I didn't use the sample code "as is" because I had to adapt a preexisting code. The mistake was to call the GetAuthorizeUri function of DropboxOAuth2Helper instead of PKCEOAuthFlow.

      Best regards,

      Ghislain

About Dropbox API Support & Feedback

Node avatar for Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

5,884 PostsLatest Activity: 5 hours ago
326 Following

If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X or Facebook.

For more info on available support options for your Dropbox plan, see this article.

If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!