I've been trying to build a local app that can access the API, so I can build specific email reports. I'm able to get an authorization code, but once I make a POST request to the Access Token endpoint, I get '{"error":"invalid_grant","error_description":"PKCE verification failed."}'
I have double-checked that the verification code and its hash "match". I'm using Axios for HTTP calls.
Could this be a CORS issue?
Solved! Go to Solution.
Thanks to the Dev team for helping me pinpoint my issues. I am using JS and AXIOS.
Turns out my issue was my code verifier and the code challenge. The code verifier was too long (only needs to be 43-125 characters long) and my code challenge was not matching up with the verifier.
I fixed it by:
1) adjusting my code verifier, so it only produced a code within the required limits
2) moving the authorizationURL constructor out of the *main function
3) used async/await for the functions that generated the code challenge and the authorizationURL constructor
I could go into more detail about this if anyone needs this in the future.
Example of how my program works:
function generateVerifier(){};
async function generateChallenge(){};
async function generateAuthorizationURL(){};
//*main function
async function initiateAuthorization(){
generateVerifier();
await generateChallenge();
await generateAuthorizationURL();
};
Hello RyanV806,
Thank you for reaching out to Constant Contact API Developer Support. My team is here to assist outside software developers with questions about building into Constant Contact's API.
Please feel free to reach out to our team directly/securely via email at webservices@constantcontact.com and reference case #31236730 with the following information so that we can better assist you:
Please provide us with the API key that you are using to make the request, the full request(s) where you are receiving the response error (including URL, headers, timestamp, and request body), and the full response body so that we can so that we can better assist you in identifying the root cause of the issue.
Please have a look and let us know if you have any other questions!
Thanks to the Dev team for helping me pinpoint my issues. I am using JS and AXIOS.
Turns out my issue was my code verifier and the code challenge. The code verifier was too long (only needs to be 43-125 characters long) and my code challenge was not matching up with the verifier.
I fixed it by:
1) adjusting my code verifier, so it only produced a code within the required limits
2) moving the authorizationURL constructor out of the *main function
3) used async/await for the functions that generated the code challenge and the authorizationURL constructor
I could go into more detail about this if anyone needs this in the future.
Example of how my program works:
function generateVerifier(){};
async function generateChallenge(){};
async function generateAuthorizationURL(){};
//*main function
async function initiateAuthorization(){
generateVerifier();
await generateChallenge();
await generateAuthorizationURL();
};
Announcements
Join our list to be notified of new features and updates to our V3 API.
Sign Up