首页 > 解决方案 > Delphi 的 Dropbox API,如何将数据发送回我的 Windows 应用程序?

问题描述

我正在尝试从我的 Dropbox 下载文件。API 需要重定向 URL。我的应用程序无权访问网络主机。我需要包含 TWebBrowser 吗?在不使用主机的情况下,如何将身份验证查询和令牌发送回我的应用程序?

我正在使用 Clever Internet 提供的 Delphi 的 Dropbox API。我提交了我的请求,我的浏览器显示“将此代码输入 MMPP 以完成该过程”。如何将其发送回我的应用程序?

procedure TDLoader.AssignCredentials(ADropbox: TDropboxManager);
begin
  ADropbox.ClientID := 'o2o.......4';
  ADropbox.ClientSecret := 'lwb..........2c';
  ADropbox.RedirectURL := 'http://localhost:55896'; // ??????
end;
procedure TDLoader.Download(const ASourceFile: string; ADestination: TStream);
var
  dbox: TDropboxManager;
begin
   Dbox := TDropboxManager.create;
   AssignCredentials(dbox);
   dbox.Download(ASourceFile, ADestination);
end;

我希望该文件为 d/l,但相反,我得到了“将此代码输入 MMPP 以完成该过程”。

标签: delphioauth-2.0dropbox

解决方案


我不知道 DropBox Api 但从您的描述中我怀疑您使用的是设备代码流

在此 grant_type 中,您开始使用范围和 clientId 调用 url (POST)(请参阅文档)的流程,并接收 verify_url、user_code 和 device_code;您必须在浏览器上打开 verify_url 并插入 user_code 并完成身份验证。

完成身份验证后,在 Delphi 上,您必须使用 device_code 和 clientId 调用(POST)另一个 url(参见文档)以获取 access_token。


推荐阅读