You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Google Drive获取可用于Android应用的永久JSON文件链接?

我完全理解你遇到的问题——Google Drive的公开链接容易失效,旧的googledrive.com/host格式早就被弃用了,确实坑人。下面给你几个靠谱的解决方案,从简单到进阶都有:

方案1:生成永久有效的直接下载链接(无需API)

这是最快捷的方式,适合你的JSON文件允许公开访问的场景:

  • 第一步:打开Google Drive里的JSON文件,点击右上角「分享」,把权限设置为**「知道链接的任何人都可以查看」**(必须确保权限正确,否则链接会返回403错误)
  • 第二步:提取文件ID——从文件的Drive链接里就能拿到,比如链接是https://drive.google.com/file/d/ABC123xyz/view,那ABC123xyz就是你的文件ID
  • 第三步:构造直接下载链接:https://drive.google.com/uc?export=download&id=你的文件ID
    • 这个链接只要文件权限不变,就可以长期使用,不会轻易失效
    • 如果JSON文件较大,遇到跳转验证页面的情况,可以在链接末尾加&confirm=t参数跳过确认
  • 在Android里,你可以用OkHttp或Retrofit请求这个链接,拿到响应字符串后直接解析JSON。比如用OkHttp的简单示例:
// 必须在后台线程执行网络请求
CoroutineScope(Dispatchers.IO).launch {
    val client = OkHttpClient()
    val request = Request.Builder()
        .url("https://drive.google.com/uc?export=download&id=你的文件ID")
        .build()
    client.newCall(request).execute().use { response ->
        if (!response.isSuccessful) throw IOException("请求失败:$response")
        val jsonString = response.body?.string()
        // 用Gson/Moshi/原生JSONObject解析jsonString
        val jsonObject = JSONObject(jsonString)
        // 处理你的JSON数据
    }
}
方案2:使用Google Drive Android API(更可靠,支持私有文件)

如果你的JSON文件不想公开,或者需要更高的稳定性,推荐用官方的Drive API:

  1. 准备工作:
    • 前往Google Cloud Console创建项目,启用「Google Drive API」
    • 生成OAuth 2.0客户端ID,选择Android类型,填写你的应用包名和SHA-1指纹
  2. 添加依赖:在app的build.gradle中添加:
implementation 'com.google.android.gms:play-services-drive:17.0.0'
  1. 连接Drive服务并读取文件:
    • 先通过Google Sign-In完成用户授权,获取DriveClient实例
    • 再通过文件ID读取文件内容:
// 假设已完成授权,拿到了driveClient实例
val fileId = "你的文件ID"
driveClient.openFile(DriveContentsRequestFactory.createOpenFileRequest(fileId))
    .addOnSuccessListener { driveContents ->
        // 读取文件内容
        val inputStream = driveContents.inputStream
        val jsonString = inputStream.bufferedReader().use { it.readText() }
        // 解析JSON数据
        driveContents.discard(driveClient) // 用完记得释放资源
    }
    .addOnFailureListener { e ->
        // 处理请求失败的情况
    }

这个方案完全由官方支持,不会出现链接失效问题,还能访问用户私有Drive里的文件,只是配置步骤稍微繁琐一点。

注意事项
  • 无论用哪种方案,Android中的网络请求绝对不能在主线程执行,一定要用Coroutine、RxJava或OkHttp的异步回调
  • 方案1中务必确认文件权限设置正确,否则会返回403禁止访问错误
  • Drive API有免费配额,普通小应用完全够用,不用担心收费问题

内容的提问来源于stack exchange,提问作者Ishan hrx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:06:57