Dropbox library (LC 9) - does dropboxGetCurrentAccount work?

Mike Kerner MikeKerner at roadrunner.com
Wed Oct 11 06:50:03 EDT 2017


What was working for me was getAccount not getCurrentAccount.  If I use
LC's library with getCurrentAccount, I get the same error.
I have found the bug in LC's library, and I patched it to get it to work,
but I want to understand more of why, and also to make sure I'm not going
to break something else before I issue a pull request.


On Wed, Oct 11, 2017 at 6:23 AM, Ben Rubinstein via use-livecode <
use-livecode at lists.runrev.com> wrote:

> Hi Mike (or anyone else)
>
> Can you confirm that dropboxGetCurrentAccount (NOT dropboxGetAccount) is
> working for you in LC 9.0.0 dp 9?
>
> It consistently fails for me, and the problem seems to be precisely the
> lack of a parameter other than the access token.
>
> Dropbox returns a 400, AFAICT, precisely because the POST is empty.
> Fiddling with this in curl, I find that
>
> $ curl -X POST https://api.dropboxapi.com/2/users/get_current_account \
>    --header "Authorization: Bearer <Access Token>"
>
> works and returns the expected data; but
>
> $ curl -X POST https://api.dropboxapi.com/2/users/get_current_account \
>    --header "Content-Type: application/json" \
>    --header "Authorization: Bearer <Access Token>" \
>    --data-ascii ""
>
> which is roughly what LC is doing, fails with 400 Bad Request.
>
> In other words, it seems that Dropbox requires this call to be made as a
> POST with no data at all; and that what LiveCode does when posting empty to
> a URL is a post with a content-length of 0 - and Dropbox won't accept it.
>
> So I'm puzzled as to how this is working for you. Are you using a
> different version of DP9 with a different tsNet version perhaps?
>
> TIA,
>
> Ben
>
>
> On 11/10/2017 08:05, Ben Rubinstein via use-livecode wrote:
>
>> Hi Mike,
>>
>> Thanks for checking. According to the Dictionary,
>> dropboxGetCurrentAccount only takes one parameter
>>      dropboxGetCurrentAccount pAccessToken, [pCallback]
>>
>> if it's supposed to take two, that would explain the 400 error! But how
>> does one obtain the account_id in the first place?
>>
>> I'm really only wanting to make this call because it looked liked the
>> cheapest way to find out if the app has a valid token for Dropobox; I can
>> either display the account it's logged in to, or a button offering to log
>> in. Is there another way?
>>
>> Many thanks,
>>
>> Ben
>>
>> On 11/10/2017 01:49, Mike Kerner via use-livecode wrote:
>>
>>> It works for me in both 8 and 9.
>>> The only way I get error 400 is if I enclose the arguments in parenthesis
>>> (which tells LC that all of that goodness goes into the first parameter)
>>> Remember, this is a command, not a function, so the arguments are not
>>> enclosed:
>>>
>>> dropboxGetCurrentAccount oauthToken, account_id
>>> if the result is not empty then
>>> answer the result
>>> exit to top
>>> else #the result is empty
>>> answer it
>>> end if #the result is not empty
>>> _______________________________________________
>>> use-livecode mailing list
>>> use-livecode at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your
>>> subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>
>>>
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>
>>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>



-- 
On the first day, God created the heavens and the Earth
On the second day, God created the oceans.
On the third day, God put the animals on hold for a few hours,
   and did a little diving.
And God said, "This is good."



More information about the use-livecode mailing list