我尝试使用Qt实现对Dropbox文件的访问。我已经创建了应用程序。网站,dir创建了。但是我无法使用应用程序进行身份验证。 我已为此创建了测试请求。
QNetworkRequest request(QUrl("https://api.dropbox.com/1/metadata/link/"));
request.setRawHeader("Authorization", "Basic " + QString("keyApp:AppSecret").toLatin1().toBase64());
replyer = manager->post(request, "link=https://www.dropbox.com/sh/<DIR URL>?dl=0");
关于“link =”我需要放什么?哪里可以找到那些链接?我只能通过添加sharelink从网站创建链接来获得此链接,我不认为它的工作原理是这样的。但即使有这个链接,我仍然会遇到错误
\ “ACCESS_DENIED:unsupported_app_type \”}”
我也试图提出这些要求
QNetworkRequest request(QUrl("https://api.dropboxapi.com/2/auth/token/from_oauth1"));
request.setRawHeader("Content-Type", "application/json");
request.setRawHeader("Authorization", "Bearer тут accesTokenFromSite");
replyer = manager->post(request, "{\"oauth1_token\": \"whereFindThoseParam?\",\"oauth1_token_secret\": \""}");
我在哪里可以找到最后两个参数?对于带有默认值的请求,我收到错误
“调用API函数时出错\”auth / token / from_oauth1 \“:无效 HTTP标头\“授权\”:期待\“Basic \”auth“
我也尝试过
QUrl url("https://api.dropbox.com/1/oauth2/token");
url.setUserName("KEY");
url.setPassword("SECRET");
QNetworkRequest request(url);
request.setRawHeader("Content-Type", "application/json");
QHttpMultiPart *mpart = new QHttpMultiPart(this);
QHttpPart part1;
part1.setBody("grant_type=authorization_code");
mpart->append(part1);
QHttpPart part2;
part2.setBody("code=CODE");
mpart->append(part2);
replyer = manager->post(request, mpart);
但仍然有错误:
“{\”error_description \“:\”没有可用的auth功能 请求\“,\”错误\“:\”invalid_request \“}”
答案 0 :(得分:0)
首先,您需要在Dropbox平台上创建新应用,以获取要在您开发的应用中使用的凭据(应用密钥和应用密钥)。您可以在以下页面上执行此操作:Create a new app on the Dropbox Platform。
您应该通读Dropbox for HTTP Developers。在那里,您可以在下拉列表中选择您的应用程序(您在Dropbox上创建的应用程序)并填充访问令牌,并获得现成的示例以使用curl进行测试。
一旦您对http API有足够的了解,就可以开始在Qt中实现了。检查QtDropbox项目源(甚至构建和运行其测试客户端)可能是个好主意。请注意,QtDropbox目前仅支持API v1。你可以找到API v1 - &gt;来自here的v2迁移指南。
<强>更新强>
要取得进展,请参阅以下步骤,以生成访问令牌,以便能够为您自己的帐户进行API调用,而无需通过授权流程。要获取其他用户的访问令牌,您必须实现标准OAuth流程,即使不是很清楚,也要在文档中进行描述。
上的应用Permission type
设置为 Full Dropbox ,以便能够执行各种操作
运营Generated access token
我们假设在Dropbox帐户的文件夹结构的根目录中有一个名为 misc 的文件夹。
使用curl列出文件夹内容:
curl -X POST https://api.dropboxapi.com/2/files/list_folder \
--header 'Authorization: Bearer 2on**_M7cJ***Qe3gmtQJK' \
--header 'Content-Type: application/json' \
--data '{"path":"/misc"}'
你应该找回一个带有文件夹内容的json对象。
正如文档所述:Dropbox API explorer是开始进行API调用的最简单方法。
要了解如何让您的应用访问其他人的Dropbox帐户(如果这是您的目标),请从您的应用中打开以下页面到浏览器:
https://www.dropbox.com/oauth2/authorize?client_id=<your app key>&response_type=code
您将获得一个令牌,然后可以将该令牌与app密钥和密钥一起用于https://api.dropboxapi.com/oauth2/token
。
希望这可以帮助你挺身而出。