Need to see if your shared folder is taking up space on your dropbox 👨‍💻? Find out how to check here.

Forum Discussion

ABDUL Salam's avatar
ABDUL Salam
Explorer | Level 3
3 years ago

I am getting invalid_url again and again with /save_url, https://api.dropboxapi.com/2/files/save_url

Hi,
I have an app that uses https://api.dropboxapi.com/2/files/save_url/save_url  endpoint to save urls from my ecommerce store to my dropbox. It was working fine early on locally bu as soon as I have deployed my script and check the logs after execution then this endpoint returns me a async_job_id which I use to check job status from https://api.dropboxapi.com/2/files/save_url/check_job_status and I get

{
".tag": "failed",
"failed": {
".tag": "invalid_url"
}
}
this error as response again and again.
I am using PHP as development language and curl for making requests to /save_url endpoint.
Although I am sure my URL's are not invalid.

 

 

 

 

 

function saveCustomilyOrders($dropboxURL, $accessToken, $customilyOrders)
{
    $apiURL = $dropboxURL . '/2/files/save_url';
    $headers = [
        'Authorization: Bearer ' . $accessToken,
        'Content-Type: application/json',
    ];
    foreach ($customilyOrders as $customilyOrder) {
        $path = $customilyOrder['path'];
        $url = $customilyOrder['url'];
        $payload = [
            'path' => $path,
            'url' => $url,
        ];
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $apiURL);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);
        if ($httpCode == 200) {
//Do some logs
        } elseif ($httpCode != 200) {
            throw new Exception('something went wrong while saving customily orders to dropbox: ' . $httpCode . ' ' . $response);
        }
        sleep(5);
    }
}

 

 

 

 

 

this is the snippet of function which I am using to /save_url enpoint.
Any suggestion in this issue will be highly appreciated as this is getting so much annyoying that it sometimes works and some times not and now its giving invalid_url again and again.
my json_encoded body looks like this in my curl request:
"{"path":"\/2023\/November\/#1123\/GP\/#1123_GK.eps","url":"https:\/\/cdn.customily.com\/ExportFile\/pf-dev-3\/b462fef1-aff5-42fa-aa77-f4eb0a6c7cce.eps"}" 
Greg-DB 
if you can look into this.
Thanks.

16 Replies

Replies have been turned off for this discussion
  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Community Moderator rankDropbox Community Moderator
    3 years ago

    ABDUL Salam Thanks for sharing that. I just tried plugging in those exact values, and the file saved successfully for me. Are you still seeing this issue if you try those exact values?

  • ABDUL Salam's avatar
    ABDUL Salam
    Explorer | Level 3
    3 years ago

    Greg-DB

    The issue arises when I execute my script as a cron task on my hosting platform. This script performs the following tasks:

    1. Retrieves orders from an ecommerce store.
    2. Processes the received data to refine its format.
    3. Searches for a specific URL attribute within each order and stores it in an array if found.
    4. Subsequently, it initiates a call to the Dropbox API to acquire an access_token. This token is obtained using a previously stored refresh token. Following this, it invokes the '/save_url' endpoint.
    5. All operational information is logged in a dedicated file, signifying the successful completion of each step. However, upon calling the '/save_url' endpoint, an 'async_job_id' is returned.
    6. Using this 'async_job_id' for verification purposes consistently results in an 'invalid URL' error. Interestingly, the same URL functions correctly when hardcoded in /save_url request parameter.




     
     
  • Здравко's avatar
    Здравко
    Legendary | Level 20
    3 years ago

    The same like in Greg's experiment, everything works as expected.

     


    ABDUL Salam wrote:

    ... It was working fine early on locally bu as soon as I have deployed my script and check the logs after execution then this endpoint returns me a async_job_id which I use to check job status from https://api.dropboxapi.com/2/files/save_url/check_job_status and I get ...


    ABDUL Salam, In this context, do you redirect your call from local machine or from the place where you are trying to deploy your script (where it fails actually)? If you do it locally only,... 🙂

  • Здравко's avatar
    Здравко
    Legendary | Level 20
    3 years ago

    ABDUL Salam wrote:

    ... Interestingly, the same URL functions correctly when hardcoded in /save_url request parameter.


    Do it in the same way when the request fails, not like when succeeds!

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Community Moderator rankDropbox Community Moderator
    3 years ago

    ABDUL Salam The Dropbox API does not offer a way to echo back the parameters/URL sent to /2/files/save_url.

     

    As Здравко asked though, were you inspecting this in the actual environment where this is failing?

About Dropbox API Support & Feedback

Node avatar for Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.

The Dropbox Community team is active from Monday to Friday. We try to respond to you as soon as we can, usually within 2 hours.

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, Facebook or Instagram.

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!