Dropbox library (LC 9) - does dropboxGetCurrentAccount work?
Mike Kerner
MikeKerner at roadrunner.com
Wed Oct 11 08:52:29 EDT 2017
What Gerard did in the original library is use the word "null" instead of
empty. So his version of __get_current_account_POST would be
private function __get_current_account_POST
return "null"
end get_current_account_POST
For some reason, empty doesn't work, but anything (inluding the word
"null") works.
Before I make the PR I'm going to see if anything else breaks by doing
that, and I'm also going to add the rest of the error message, that gets
dropped.
On Wed, Oct 11, 2017 at 8:27 AM, Ben Rubinstein via use-livecode <
use-livecode at lists.runrev.com> wrote:
> 20555 for POST; 20556 for dropboxGetCurrentAccount.
>
> 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.
>>
>
> How are you patching it to work? I can't see any way of issuing a POST
> request in LC code (without using curl, which won't work on mobile) that
> gets round this problem.
>
>
> On 11/10/2017 11:58, Mike Kerner via use-livecode wrote:
>
>> Feel like opening a couple QR's? I think we need two: one for post and
>> one for the error in the library.
>> In fact, there are two problems in the library. One is the way the
>> library
>> handles errors returned by dropbox (you only get half the error message),
>> and the other is the way endpoints like this one are handled. Hopefully
>> I'll have both of those patched and up to my repo and the PR submitted,
>> today.
>> If you want, you can also patch the library code, but if you do, I'd
>> suggest moving your project to LC8 and including the patched library stack
>> as a substack.
>>
>> On Wed, Oct 11, 2017 at 6:45 AM, Ben Rubinstein via use-livecode <
>> use-livecode at lists.runrev.com> wrote:
>>
>> You beat me to it!
>>>
>>>
>>> On 11/10/2017 11:23, Ben Rubinstein via use-livecode 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
>>>>
>>>>
>>> _______________________________________________
>>> 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