cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Announcements
What’s new: end-to-end encryption, Replay and Dash updates. Find out more about these updates, new features and more here.

Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Byte order marks on challenge response

Byte order marks on challenge response

ytechie
New member | Level 2
Go to solution

I set up a Node.js server to respond to the API challange request for a webhook. I can't seem to get it to accept the challenge. I can't tell if it's appending byte order marks, or if Node.js is secretly sending them. I masked out some of the info below, but I kept the key parts.

 

Notice the extra "\xef\xbb\xbf" prepended to the challenge response.

 

Error: Incorrect response to challenge. We didn't receive the expected response xxxxx. See the actual response body we received below.

Request:
GET http://xxxx.ngrok.io/api/DropboxWebhook?challenge=xxxxx

Response:
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Server: Microsoft-HTTPAPI/2.0
Connection: keep-alive
Date: Wed, 28 Dec 2016 18:10:30 GMT
Content-Type: text/plain; charset=utf-8

Response Body (First 256 bytes):
\xef\xbb\xbfxxxxx

1 Accepted Solution

Accepted Solutions

ytechie
New member | Level 2
Go to solution

It was an issue specific to Azure Functions. The fix was to use a content type of "application/octet-stream".

 

Here is code that I confirmed works with dropbox:

res = {
            body: challenge,
            headers: {
                'Content-Type': 'application/octet-stream'
            }
        };

View solution in original post

2 Replies 2

Greg-DB
Dropbox Staff
Go to solution

The Dropbox webhook challenge string doesn't contain a BOM, so the Dropbox webhooks service doesn't expect one in the echoed string. That being the case, it does look like something on your side is adding it.

 

Unfortunately, that sounds like an issue with Node or your code itself, so I'm afraid I can't offer much insight. Perhaps someone else here is familiar with it though and can help if you share your code.

ytechie
New member | Level 2
Go to solution

It was an issue specific to Azure Functions. The fix was to use a content type of "application/octet-stream".

 

Here is code that I confirmed works with dropbox:

res = {
            body: challenge,
            headers: {
                'Content-Type': 'application/octet-stream'
            }
        };
Need more support?
Who's talking

Top contributors to this post

  • User avatar
    ytechie New member | Level 2
  • User avatar
    Greg-DB Dropbox Staff
What do Dropbox user levels mean?