Skip to main content
Question

Why am I getting 403 Forbidden errors using the Compliance API when I run reports?

  • August 23, 2019
  • 4 replies
  • 3501 views

I use Compliance API daily to run reports. But today and yesterday I get the error "403 Forbidden", so I can't make report. Please check and let me now this issue.

4 replies

403 means forbidden permission which means you are not authorized or allowed. This happens when you get with wrong credentials like client id or client secret or wrong phone number or extension etc or particular permission is missing.

Make sure if anything changed. Check with the developer support team by submitting a help ticket and providing them full details of your API and environment.


  • Author
  • Known Participant
  • 17 replies
  • February 10, 2020

Compliance Api don't work. I get taskId successfull, Then I using taskId to get report.zip file but taskId return reult is null. Please check, it still work very good in 2019.


PhongVu
Community Manager
Forum|alt.badge.img
  • Community Manager
  • 2310 replies
  • February 10, 2020

I run my test code and it works well today. Can you try this Node JS code on your machine, just make sure you have installed the RingCentral JS SDK and replace the app and user login credentials

var rcsdk = new SDK({
      server: RINGCENTRAL_SERVER,
      appKey: RINGCENTRAL_CLIENTID,
      appSecret: RINGCENTRAL_CLIENTSECRET
  });
var platform = rcsdk.platform();
platform.login({
      username: RINGCENTRAL_USERNAME,
      password: RINGCENTRAL_PASSWORD,
      extension: RINGCENTRAL_EXTENSION
      })
      .then(function(resp) {
          create_glip_compliance_export_task()
      });
 
function create_glip_compliance_export_task(){
    console.log("Create export task.")
    var endpoint = "/restapi/v1.0/glip/data-export"
    var params = {
        timeFrom: "2019-08-01T00:00:00.000Z",
        timeTo: "2020-01-15T23:59:59.999Z",
      }
    platform.post(endpoint, params)
      .then(function(resp){
          var json = resp.json()
          console.log(JSON.stringify(json))
          get_glip_compliance_export_task(json.id)
      })
      .catch(function(e){
          console.log(e)
      })
}
 
function get_glip_compliance_export_task(taskId){
    console.log("Check export task status ...")
    var endpoint = "/restapi/v1.0/glip/data-export/" + taskId
    platform.get(endpoint)
      .then(function(resp){
          var json = resp.json()
          if (json.status == "Completed"){
            console.log(JSON.stringify(json))
              for (var i=0; i<json.datasets.length; i++){
                var fileName = "glip-export-reports/" + json.creationTime + "_" + i + ".zip"
                console.log(json.datasets[i].uri)
                get_glip_report_archived_content(json.datasets[i].uri, fileName)
              }
          }else if (json.status == "Accepted" || json.status == "InProgress") {
              setTimeout(function(){
                get_glip_compliance_export_task(taskId)
              }, 5000);
          }else
              console.log(json.status)
      })
      .catch(function(e){
          console.log(e)
      })
}
 
function get_glip_report_archived_content(contentUri, fileName){
    var uri = platform.createUrl(contentUri, {addToken: true});
    download(uri, fileName, function(){
        console.log("Save report zip file to the local machine. " + fileName)
    })
}
 
const download = function(uri, dest, cb) {
    var file = fs.createWriteStream(dest);
    var request = https.get(uri, function(response) {
        response.pipe(file);
        file.on('finish', function() {
            file.close(cb);
        });
    });
}



  • Author
  • Known Participant
  • 17 replies
  • February 11, 2020

Thanks, It work when I run your NodeJS code. But my application with .net SDK still error =))


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings