百度网盘API接入影刀上传文件
评论
收藏

百度网盘API接入影刀上传文件

经验分享
p
pairine
2026-04-23 10:57·浏览量:285
p
pairine
影刀见习开发者
发布于 2026-04-23 10:57285浏览

思路背景:

初衷源于在学习高级课程第五章-控制台的演示案例:将本地文件自动上传至维格表的指定记录,并获取该记录在网页上的访问链接。然而,由于我目前没有可用的维格表环境,因此决定转换技术思路——借助百度网盘的开放API来实现文件上传的核心功能。

以下是我在申请百度网盘API、获取access_token、并在影刀中实现文件上传功能。

重要提示:百度网盘的分享功能需要企业认证+付费,个人开发者只能使用上传功能。本文重点分享上传功能,如需分享请手动操作。

前期准备:

项目

说明

百度账号

需要实名认证

影刀RPA

6.0以上版本

Python环境

影刀内置,无需额外安装

申请API凭证

第1步:进入开放平台

访问 百度网盘开放平台,点击右上角「控制台」。

https://pan.baidu.com/union/home

第2步:实名认证

首次使用需要完成实名认证(个人身份证即可)。

第3步:创建应用

1.    点击「创建应用」

2.    应用类别选择 「软件」

3.    应用名称随便填,比如 上传工具

4.    点击「立即创建」

第4步:获取凭证

创建成功后,会看到三个重要信息:

App ID: 2583**24

App Key: xxxxxxxxxxxxxx

Secret Key: xxxxxxxxxxxxxx

参数

说明

作用

App ID

应用唯一标识

用于拼接授权链接

App Key

API密钥

相当于"账号"

Secret Key

密钥

相当于"密码",请保密

 

获取access_token(核心步骤)

access_token 是调用API的"通行证",有效期30天。

以下是最简单的获取方式

最稳妥的方式是用简化模式在浏览器里直接把你的AppKey替换到以下地址:

https://openapi.baidu.com/oauth/2.0/authorize?response_type=token&client_id=你的AppKey&redirect_uri=oob&scope=basic,netdisk

访问后登录授权,然后地址栏的地址会发生变化

从新地址 #access_token= 后面复制那一整段

2. 复制时注意

·         只复制 access_token= 后面的内容,到下一个 & 符号之前为止

·         不要复制多余的字符

·         可以先把 token 粘贴到记事本里,确认没有空格或换行

扩展知识

如果不知道自己的token是否有效,可以在影刀新建一个python模块测试:

代码如下:

import xbot

from xbot import print, sleep

from .import package

from .package import variables as glv

import requests

 

def main():

    access_token = "你的TOKEN"

    url = "https://pan.baidu.com/rest/2.0/xpan/nas"

    params = {

        "method": "uinfo",

        "access_token": access_token

    }

   

    response = requests.get(url, params=params)

    result = response.json()

    print(result)

   

    if result.get("errno") == 0:

        print(f"Token 有效!用户名: {result.get('username')}")

        return result.get("username")

    else:

        print(f"Token 无效或已过期: {result}")

        return None

在影刀中写代码

第1步:安装requests库

在影刀中点击 「扩展」→「Python包管理」,搜索 requests 并安装。

第2步:新建Python模块

在影刀流程中新建一个「Python模块」,写入以下代码:

第3步:完整代码

import xbot

from xbot import print, sleep

from .import package

from .package import variables as glv

import requests

import os

def upload_file(file_path):

    """上传文件到百度网盘,返回文件路径"""

    access_token = "你的token连接"

    app_name = "xxxxxx"  # 替换成你的实际应用名称

    filename = os.path.basename(file_path)

    remote_path = f"/apps/{app_name}/{filename}"

    # 上传文件

    upload_url = "https://d.pcs.baidu.com/rest/2.0/pcs/file"

    params = {

        "method": "upload",

        "access_token": access_token,

        "path": remote_path,

        "ondup": "overwrite"

    }

    with open(file_path, 'rb') as f:

        files = {'file': (filename, f)}

        response = requests.post(upload_url, params=params, files=files)

        result = response.json()

    if result.get('error_code', 0) != 0:

        raise Exception(f"上传失败: {result}")

    print(f" 上传成功!")

    print(f" 文件位置: 网盘 -> 我的应用数据 -> {app_name} -> {filename}")

    print(f" 如需分享,请登录网盘手动创建分享链接")

    return result.get('path')

重要提醒

事项

说明

保护token

不要把token发到网上,否则别人能操控你的网盘

 token过期

30天后需重新获取

 路径限制

个人开发者只能操作 /apps/应用名/ 目录

 分享功能

需要企业认证+付费,个人用户请手动分享

 

调用模块后设置好调用参数运行就可以了上传到个人网盘上了

运行结果:

收藏
全部评论1
最新
发布评论
评论