C для запроса DropBox - PullRequest
       6

C для запроса DropBox

0 голосов
/ 30 января 2019

Я пытаюсь использовать C API для запроса dropbox, но получаю сообщение об ошибке:

Ошибка в информации учетной записи (400): invalid_request

IЯ посмотрел на настройки Dropbox моего разработчика и подтвердил, что я заполнил переменные c_key, c_secret значениями из Ключа приложения и Секрета приложения.

Что я должен изменить в своем коде, чтобы он успешно выполнялся?

int main (int argc, char **argv) {

int err;
void* output;
char *c_key    = "XXXXXXXXXXXXXXX"; 
char *c_secret = "XXXXXXXXXXXXXXXX";   
char *t_key    = NULL; 
char *t_secret = NULL; 

drbInit();
drbClient* cli = drbCreateClient(c_key, c_secret, t_key, t_secret);
drbSetDefault(cli, DRBOPT_ROOT, DRBVAL_ROOT_AUTO, DRBOPT_END);
output = NULL;
err = drbGetAccountInfo(cli, &output, DRBOPT_END);
if (err != DRBERR_OK) {
    printf("Account info error (%d): %s\n", err, (char*)output);
    free(output);
} else {
    drbAccountInfo* info = (drbAccountInfo*)output;
    displayAccountInfo(info);
    drbDestroyAccountInfo(info);
}

1 Ответ

0 голосов
/ 30 января 2019

Похоже, здесь есть как минимум две проблемы:

  1. Вы не предоставляете токен доступа (который будет в t_key и t_secret в этом коде), поэтому вы не можете выполнить аутентифицированный вызов API, например, для получения информации об учетной записи.

  2. Используемая вами библиотека использует Dropbox API v1, который имеетбыл на пенсии , так что это все равно не получится даже с действительным токеном доступа.Вы должны использовать Dropbox API v2 .Dropbox не предлагает официальный SDK для использования Dropbox API v2 из C, вы можете напрямую вызвать конечные точки HTTPS или использовать стороннюю библиотеку, которая делает это.

...