C 查询 DropBox

C To Query DropBox

我正在尝试使用 C API 来查询保管箱,但出现以下错误:

Account info error (400): invalid_request

我查看了我的开发人员 Dropbox 设置并确认我使用 App Key 和 App Secret 中的值填充了变量 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. 您没有提供访问令牌(这将在 t_keyt_secret 在此代码中),因此您无法进行身份验证 API 调用,例如检索帐户信息。

  2. The library you're using 使用 Dropbox API v1,已 retired,所以即使有有效的访问权限,这仍然会失败 令牌。您应该改用 Dropbox API v2。 Dropbox 没有 提供一个官方 SDK,用于从 C 中使用 Dropbox API v2,你可以 直接调用the HTTPS endpoints,或者使用第三方库 这样做。