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);
}
看来这里至少有两个问题:
您没有提供访问令牌(这将在 t_key
和
t_secret
在此代码中),因此您无法进行身份验证 API
调用,例如检索帐户信息。
The library you're using 使用 Dropbox API v1,已
retired,所以即使有有效的访问权限,这仍然会失败
令牌。您应该改用 Dropbox API v2。 Dropbox 没有
提供一个官方 SDK,用于从 C 中使用 Dropbox API v2,你可以
直接调用the HTTPS endpoints,或者使用第三方库
这样做。
我正在尝试使用 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);
}
看来这里至少有两个问题:
您没有提供访问令牌(这将在
t_key
和t_secret
在此代码中),因此您无法进行身份验证 API 调用,例如检索帐户信息。The library you're using 使用 Dropbox API v1,已 retired,所以即使有有效的访问权限,这仍然会失败 令牌。您应该改用 Dropbox API v2。 Dropbox 没有 提供一个官方 SDK,用于从 C 中使用 Dropbox API v2,你可以 直接调用the HTTPS endpoints,或者使用第三方库 这样做。