当前位置: 首页 > 知识库问答 >
问题:

尝试通过Dropbox Javascript访问Dropbox API时出错400SDK

蒋奇
2023-03-14

我有一个应用程序,通过Dropbox Javascript SDK尝试下载文件。我不知道怎么了。通过fetch调用访问Dropbox API,直接导致相同的错误。Dropbox API文档指出,错误400是因为输入参数不正确,而我发送的似乎没有问题-“Dropbox API参数”:“{\”path\“:\”/1/price.xlsx \“}”

const Dropbox = require("dropbox").Dropbox;
import axios from "axios";
import fs = require("fs");
import { logger } from "./logger";

export class FileHandler {
    public async handle(path: string, token: string): Promise<void> {
        try {
            const dbx = new Dropbox({ fetch: axios, accessToken: token });
            dbx.filesDownload({ path })
                .then((data) => {
                    fs.writeFile(data.name, data.fileBinary, "binary", (err) => {
                        if (err) { throw err; }
                    });
                })
                .catch((error: any) => {
                    logger.error(error);
                    throw new Error(error);
                });

        } catch (err) {
            logger.error(err);
        }
    }
}

共有1个答案

裘光启
2023-03-14

看起来只是一些请求参数错误,现在它正在工作:

public static async handle(path: string, token: string, userId: number, fileId: string): Promise<void> {
    try {
        axios.post("https://api.dropboxapi.com/2/files/get_temporary_link", { path }, {
            data: {
                path,
            },
            headers: {
                "Authorization": `Bearer ${token}`,
                "Content-Type": "application/json",
            },
        }).then((data) => FileHandler.readFile(data.data.link, data.data.metadata.name)
            .then(() => FileUtilities.parseFile(data.data.metadata.name, fileId)))
            .catch((err) => logger.error(err));
    } catch (err) {
        logger.error(err);
        UtilsRepository.findSupplierEmail(userId).then(data => {
            throw new MailingError(new MailObjectCannotReadFile(data[0].Email));
        });
    }
} 
 类似资料:
  • 我带着一个我无法解决的问题来到这里。 我在版本1.7中有一个prestashop,我已经移动到另一台服务器,值得一提的是,在旧服务器中,prestashop运行良好。 当我将prestashop迁移到新服务器时,除了我想进入后台,当我想进入后台时,只需将页面留空,其他一切都可以正常工作。 我已经激活了调试模式,但它没有给我任何与后台相关的错误,有趣的是,当调试模式被激活时,我可以毫无问题地进入后台

  • 我有一个Google App Engine应用程序,其中数据存储在Google Cloud Datastore中。我想使用Dataflow将部分数据放入BigQuery,但我想我应该从从Datastore获取一些信息并将其写入Google Cloud Storage开始。我的代码如下所示: 但是,当我尝试运行它时,我在进行Datastore查询时收到403个错误: 我使用Google Cloud

  • 拜托,我需要一些关于Prestashop问题的帮助。我在OVH共享主机上运行Prestashop 1.7。直到昨天早上,一切都很顺利,但后来我再也无法访问后台,反而出现了错误500。门脸还在工作,我还在接受订单。 资料: 我没有升级任何东西,无论是网站还是任何模块。 当我启用调试模式(define.inc.php),后台再次工作,但前台得到一个错误:前台错误。当我试图从后台重新生成. htacce

  • PS C:\用户\\桌面\实时聊天应用程序\nodeserver>nodemon index.js 这是错误nodemon:文件C:\users\\appdata\roaming\npm\nodemon.ps1无法加载,因为在此系统上禁用了运行脚本。有关详细信息,请参阅https://go.microsoft.com/fwlink/?LinkId=135170上的about_Execution_P

  • 我试图使用Apache Beam从Compute Engine VM简单访问Google Cloud存储。当然,我已经使用命令gcloud auth应用程序默认登录设置了默认应用程序登录,并为计算引擎服务号添加了对存储的访问权限。我使用DirectRunner运行了管道并得到错误:apache_beam.io.filesystem.BeamIOError:匹配操作失败,有异常{'gs://{thi

  • 下面是我的配置: 在server.xml中(来自Tomcat) 在web.xml中(来自Tomcat) 在web.xml中(来自我的项目) 和我的项目结构: 最后,看看日志,我想不出我的应用程序部署在哪里: 感谢任何帮助!