403 error when creating request via API

10 Comments

  • Thomas Verschoren
    Community Moderator

    Hey,

    Your code looks very similar to mine:

    So I might assume that the Base64 encode of your user/token:token is wrong.

    Can you maybe console.log your BTOA(..) result and compare it to what you would get when entering that same data in e.g. https://www.base64encode.org/?

    jQuery.ajax({
    url: "https://d3v-verschoren.zendesk.com/api/v2/requests",
    type: "POST",
    headers: {
    "Authorization": "Basic 1234567890abdcefd",
    "Content-Type": "application/json",
    },
    contentType: "application/json",
    data: JSON.stringify({
    "request": {
    "subject": "Help!",
    "comment": {
    "body": "My printer is on fire!"
    }
    }
    })
    })
    .done(function(data, textStatus, jqXHR) {
    console.log("HTTP Request Succeeded: " + jqXHR.status);
    console.log(data);
    })
    .fail(function(jqXHR, textStatus, errorThrown) {
    console.log("HTTP Request Failed");
    })
    0
  • Bonaliza Garcia

    Thomas Verschoren 

    Yea it's giving me the correct value. I also tried encrypting the whole thing and just pasting it but it's still giving me the error message.

    Could you think of anything else? I'm just lost since it's working on Postman

    0
  • Bonaliza Garcia

    I also tried your code but it gave me the same error.

     

    0
  • Thomas Verschoren
    Community Moderator

    Hey,

    Since you've already opened the developer view in your browser: When you open the Network tab you can inspect your payload: what's actually send and returned:

    You can verify there if it matches your expected user:token/password

     

    0
  • Bonaliza Garcia

    Hey, 

    So I did that. It matches what I used. email/token:api_token.

    Are you using this code in Zendesk or an external app?

    Is it possible that the authentication is somehow clashing with the current logged in user?

    0
  • Thomas Verschoren
    Community Moderator

    I tested this with an external JS application hosted on a server.

    Mind that Zendesk client.request replaces all headers to yourdomain.zendeks.com via proxy with it's own auth tokens.

    0
  • Bonaliza Garcia

    Should the code then be different if using this within zendesk?

    0
  • Bonaliza Garcia

    Hey Thomas Verschoren,

    I think it's an issue with the logged in user or the session...

    I tried logging out of Zendesk and tried the exact code on the browser console and it worked...

    Any idea why this is the case?

     

    Thanks

    0
  • Thomas Verschoren
    Community Moderator

    Hey,

    To quote the documentation:

    So when you use client.request the Zendesk Proxy removes any auth headers for your own Zendesk domain and replaces them with the current user and his/her permission level.

    0
  • Bonaliza Garcia

    Hey,

    I am not making an external app. I'm doing this within our Zendesk Portal using the templates (e.g. new_request_page.hbs). Base on my understanding, ZAFClient is used when building an external app that incorporates Zendesk support? 

    My issue is when doing this in Zendesk Portal itself. Also the 404 error only appears when doing a POST request.

    0

Please sign in to leave a comment.

Powered by Zendesk