Surfacing this here bc it was buried in another thread…
Hi, I’m proceeding with OAuth testing. Not sure what the problem is but I get a response from the token service with the error
{“error”:“invalid_request”,“error_description”:“Missing client_id param”}
  (log) ControllerMonday: sending request to get token with - {"client_id":"NNNNN","client_secret":"NNNNN","redirect_uri":"MY_REDIRECT_URI","code":"NNNN"}
  (log) ControllerMonday: token response, getting access token
  (log) ControllerMonday: token response, body is - {"error":"invalid_request","error_description":"Missing client_id param"}
I’m receiving the redirect callback with the access code just fine. But, then I set all the values including “client_id” and calling https://auth.monday.com/oauth2/token and I get the response that “client_id” is missing…
I had a similar error when I first started testing OAuth for Monday apps and it was because my app settings had changed and I had to redeploy the app so that my OAuth settings had taken effect. But, my app hasn’t changed and I’ve verified the client_id and client_secret as well as the code being sent are correct.
But, at this point, I’m at a loss. I’m passing the client_id and what I thought was odd was that in the sample code that you referenced, they used this for their POST configuration:
GITHUB EXAMPLE CODE
    var authRequest = {
      url: 'THE_TOKEN_URI',
      form: {
        redirect_uri: redirect_uri + "/oauth/callback",
        client_id: client_id,
        client_secret: client_secret,
        code: code,
      },
    };
They’re using “form” instead of “body” to POST the data to the token service. I tried both with “body” and with “form” and get the same response. Here’s my code…
        // Call monday enpoint
        var config = {
            method: 'POST',            
            body: JSON.stringify({
                client_id: this.Env.MONDAY_CLIENT_ID,
                client_secret: this.Env.MONDAY_CLIENT_SECRET,
                redirect_uri: ControllerMonday.OAUTH_REDIRECT_URI,
                code: code     
            })
        };
        console.log("ControllerMonday: sending request to get token with - "+ config.body);
        var req = new Request(ControllerMonday.OAUTH_TOKEN_URI);
        var res = await fetch(req, config);      
Any ideas? Thanks

