标签: dropbox-api

Dropbox API:如何获得剩余可用空间量?

在我看来,Dropbox API无法告知链接的Dropbox帐户的剩余可用空间.我只能通过使用.accountInfo()调用来获取用户的总配额.

我看到的唯一方法是迭代用户在Dropbox中存储的所有文件,并总结其大小,然后从总配额中减去此金额.这个解决方案似乎非常糟糕和缓慢,有没有更好的方法呢?

作为旁注,我尝试在Android上执行此操作,但我不认为这是一个依赖于平台的问题.

java android dropbox-api

1
推荐指数
1
解决办法
3054
查看次数

新生成的Dropbox令牌立即过期

我在这里有这个奇怪的问题,我立即通过Dropbox获取令牌并尝试测试它,这个消息抛出异常:

HTTP状态401 {"错误":"给定的OAuth 2访问令牌不存在或已过期."}

为什么Dropbox令牌会生成后立即过期?

让我告诉你我的应用程序的流程:

用户看到此屏幕:

表格1

其中包含以下相关的PHP代码:

require "../../includes/dropbox-sdk/Dropbox/autoload.php";
require "../../includes/config.php";
session_start();
session_regenerate_id();
$appInfo = Dropbox\AppInfo::loadFromJsonFile("../../includes/dropbox-sdk/Dropbox/app-info.json");
$webAuth = new Dropbox\WebAuthNoRedirect($appInfo, "Mignori-Box/1.0");

$authorizeUrl = $webAuth->start();
Run Code Online (Sandbox Code Playgroud)

好吧,我们使用官方SDK生成一个Dropbox授权URL,这似乎工作正常,用户看到这个屏幕:

Dropbox的

他们点击允许,Dropbox为他们提供授权令牌,然后他们将其粘贴到我的网站,然后提交.这是处理表单的代码:

      try
      {
          $accessToken = $_POST['authorization_code'];

          $dbxClient = new Dropbox\Client($accessToken, "Mignori-Box/1.0");
          $accountInfo = $dbxClient->getAccountInfo();
      }catch(Exception $e)
      {
          echo "<div class=\"alert alert-danger\">";
          echo "<strong>An error has occurred.</strong><br>" . $e -> getMessage();
          echo "</div>";
      }
Run Code Online (Sandbox Code Playgroud)

但无论令牌有多近,当用户提交令牌时,都会调用catch并显示警告.即使令牌是在几秒钟之前生成的,这种情况也会发生.

有人可以告诉我什么是错的吗?

php dropbox dropbox-api dropbox-php

1
推荐指数
1
解决办法
1197
查看次数

iTunes Connect:您的应用是否设计为使用加密技术?

我提交的应用程序使用Dropbox SDK将照片从iPhone上传到dropbox中的指定文件夹.因为我不知道我不知道如何/什么/如果dropbox sdk使用cyroptograhy.你能帮我回答下列问题吗?:

您的应用是否设计为使用加密技术,还是包含或包含加密技术?(即使您的应用仅使用iOS或OS X中提供的加密,也请选择"是".)

如果是这样,您的应用程序是否有资格获得美国出口管理条例第2部分第5类规定的任何豁免?确保您的应用符合此处列出的豁免条件.您有责任对产品进行适当的分类.对您的应用进行错误分类可能会导致您违反美国出口法律,并可能导致您受到处罚,包括您的应用从App Store中删除.在回答问题之前,请仔细阅读常见问题解答.如果您的应用程序的加密是:(a)专为医疗最终用途而设计(b)仅限于知识产权和版权保护(c)仅限于身份验证,数字签名或解密,您可以为问题#2选择"是" (d)为银行业务或"货币交易"而特别设计和限制的数据或文件; 或(e)限于"固定"数据压缩或编码技术如果您的应用程序符合美国出口管理条例第2部分第5类注释4中提供的描述,您也可以选择是.

如果没有,您的应用程序是否实施了一个或多个加密算法,这些加密算法是专有的,或者尚未被国际标准机构(例如IEEE,IETF,ITU等)接受为标准?

等等.

encryption itunesconnect dropbox dropbox-api

1
推荐指数
1
解决办法
5116
查看次数

Golang - Dropbox webhook 签名验证 hmac

我正在编写一个需要使用 Dropbox 网络钩子的程序。我还没有找到任何已经到位的 Go 实现,所以我决定写我的。不幸的是,它似乎不起作用。

我认为这里的问题是hmac,因为我很可能做错了什么,但我似乎无法理解这里的问题到底在哪里。任何的想法?

以下是我所拥有的:

package dboxwebhook

import (
    "bytes"
    "crypto/hmac"
    "crypto/sha256"
    "errors"
    "io"
    "io/ioutil"
    "log"
)

type Signature struct {
    AppSecret []byte
    Signature []byte
}

func (w *Signature) Check(reqBody io.ReadCloser) error {

    if bytes.Compare(w.Signature, nil) == 0 {
        return errors.New("DropBox signature doesnt exist")
    }

    // building HMAC key (https://golang.org/pkg/crypto/hmac/)
    mac := hmac.New(sha256.New, w.AppSecret)
    requestBody, err := ioutil.ReadAll(reqBody)
    if err != nil {
        return err
    }

    mac.Write(requestBody)
    expectedMac := mac.Sum(nil)

    log.Println(w.AppSecret)
    log.Println(expectedMac)
    log.Println(w.Signature)

    // compare if …
Run Code Online (Sandbox Code Playgroud)

sha256 go hmac webhooks dropbox-api

1
推荐指数
1
解决办法
809
查看次数

Dropbox Http API - 获取当前令牌帐户的文件/文件夹

我正在尝试为批准我的应用程序的用户获取文件和文件夹(现在我在他批准后拥有令牌)。

我能够通过获取用户 dbid 并将其与“Dropbox-API-Select-User”标头一起使用来扫描团队中的所有用户,但有时我只想扫描当前用户(批准我的应用程序的用户)。

我暂时无法获得他的 dbid,当我尝试在没有“Dropbox-API-Select-User”标头的情况下访问“ https://api.dropboxapi.com/2/users/get_current_account ”时,我得到了消息表明此标头丢失。

有什么想法如何在没有 dbid 的情况下访问他的文件/文件夹,或者以某种方式获取他的 dbid?也许在授权过程中?或者其他一些API?

我正在使用这个 API: https: //www.dropbox.com/developers/documentation/http/documentation

我获取当前帐户的请求:https ://api.dropboxapi.com/2/users/get_current_account

我的标题:

内容类型:application/json

授权:不记名 my_token

我收到此错误:调用 API 函数“users/get_current_account”时出错:缺少必需的 X-Dropbox-Perform-As-Team-Member 标头

谢谢。

dropbox dropbox-api

1
推荐指数
1
解决办法
2411
查看次数

SwiftyDropbox下载进度

我正在使用此代码下载文件,它工作正常.

// Download a file

let destination : (NSURL, NSHTTPURLResponse) -> NSURL = { temporaryURL, response in
    let fileManager = NSFileManager.defaultManager()
    let directoryURL = fileManager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0]
    // generate a unique name for this file in case we've seen it before
    let UUID = NSUUID().UUIDString
    let pathComponent = "\(UUID)-\(response.suggestedFilename!)"
    return directoryURL.URLByAppendingPathComponent(pathComponent)
}

client.files.download(path: "/hello.txt", destination: destination).response { response, error in
    if let (metadata, url) = response {
        print("*** Download file ***")
        let data = NSData(contentsOfURL: url)
        print("Downloaded file name: \(metadata.name)") …
Run Code Online (Sandbox Code Playgroud)

dropbox-api swift

1
推荐指数
1
解决办法
1741
查看次数

如何对大于 150mb 的文件使用 Dropbox 上传会话?

我想上传大于 150mb 的文件。

在 Dropbox API V2 文档中,它说您应该启动上传会话

文档说您不能发送超过 150mb 数据的 POST,但我不确定如何使用 upload_session API 实现这一点。

javascript node.js dropbox-api

1
推荐指数
1
解决办法
3204
查看次数

获取文件的共享链接 Dropbox API v2.0 c#

我正在使用 Dropbox.Net API v2.0 将文档上传到 Dropbox:

private async Task Upload(DropboxClient dbx, string localPath, string remotePath)
    {
        using (var fileStream = File.Open(localPath, FileMode.Open))
        {
            var s = await dbx.Files.UploadAsync(remotePath, body: fileStream);
        }
    }
Run Code Online (Sandbox Code Playgroud)

如何获取已上传文档的共享链接?

我已经尝试过:

await dbx.Sharing.GetSharedLinkFileAsync(remotePath);
Run Code Online (Sandbox Code Playgroud)

但出现以下错误:

<Message>An error has occurred.</Message>
<ExceptionMessage>shared_link_not_found/.</ExceptionMessage>
Run Code Online (Sandbox Code Playgroud)

我正在想一些东西,但不确定是什么,有什么想法吗?

c# dropbox dropbox-api

1
推荐指数
1
解决办法
4150
查看次数

在 Dropbox API Python 上实现 OAuth

我正在尝试将用户添加到我的 Dropbox 应用的开发用户中。为此,我似乎必须连接到端点/token/from_oauth1或/和/oauth2/token生成它们的访问令牌。我是使用 API 的新手,并且正在努力理解如何在我的代码中实现 OAuth/OAuth2。我正在使用requests图书馆这样做。

这是我尝试过但对我不起作用的示例:

import requests
import json

url = "https://api.dropboxapi.com/2/auth/token/from_oauth1"

headers = {
    "Authorization": "Basic <APP_KEY>:<APP_SECRET>",
    "Content-Type": "application/json"
}

data = {
    "oauth1_token": "<DROPBOX_USERNAME>",
    "oauth1_token_secret": "<DROPBOX_PASSWORD>"
}

r = requests.post(url, headers=headers, data=json.dumps(data))
Run Code Online (Sandbox Code Playgroud)

但我收到错误 b'Error in call to API function "auth/token/from_oauth1": Invalid value in HTTP header "Authorization": "Basic <APP_KEY>:<APP_SECRET>"'

APP_KEY并且APP_SECRET显然替换为其相应的字符串。

我打电话/token/from_oauth1而不是/oauth2/token. 如果是这样,这个请求我哪里出错了?

python oauth oauth-2.0 dropbox-api python-requests

1
推荐指数
1
解决办法
1228
查看次数

使用 rdrop2 和 drop_auth() 获取 Dropbox API 的刷新令牌

我正在尝试创建一个闪亮的应用程序,它使用包 rdrop2 链接到我的保管箱。

我已成功部署该应用程序,它按计划运行了大约 4 个小时。但是,我需要持久的离线访问。Dropbox 帮助页面显示我需要“刷新令牌”。

目前,为了获取我正在使用的令牌:

library(rdrop2)
token <- drop_auth() # gets credentials

saveRDS(token, "droptoken.rds") # saves credentials


token<-readRDS("droptoken.rds") # read in credentials

drop_auth(new_user = FALSE,
          cache = TRUE,
          rdstoken = "droptoken.rds")

ui <- # some UI code



server <- function(input, output,session) {
  # some server code
}

shinyApp(ui = ui, server = server)

Run Code Online (Sandbox Code Playgroud)

这将创建一个带有“sl”的令牌。访问令牌(短期),到期时间为 14400,即 4 小时。4 小时后,该应用程序由于“未经授权的 HTTP 401”错误而不再运行。

任何人都可以为我提供有关如何调整此代码以获取刷新令牌的帮助吗?

注意:dropbox 不再允许无期限的令牌(截至 2021 年 9 月),因此我需要沿着刷新令牌路线进行。

r dropbox-api rdrop2

1
推荐指数
1
解决办法
1371
查看次数