我有一个应用程序,用户可以输入Google幻灯片的链接,如果成功,它将在另一个组件上查看/呈现Google幻灯片。但我也想通知用户他们输入的链接是公开的、私有的还是无效的。所以基本上当它是公共链接时,它会成功显示 Google 幻灯片,但问题是我怎么知道链接是私有链接还是无效链接?
专用链接- Google 幻灯片存在,但不可共享。
无效链接- 没有现有的谷歌幻灯片或错误的网址。
我尝试使用此API GET https://slides.googleapis.com/v1/presentations/{presentationId},因为我已经有了presentationId
,但我只得到了2个响应,200
成功返回此对象,400
返回此对象(无论演示文稿ID来自私人Google幻灯片ID还是虚构ID(:
{
"error": {
"code": 400,
"message": "This operation is not supported for this document",
"status": "FAILED_PRECONDITION"
}
}
有没有其他方法可以区分链接?
答案:
您无法仅从链接中判断 ID 是否无效。您必须实际发出请求,并根据 HTTP 状态代码处理应用的响应方式。
更多信息:
来自有关演示文稿 ID 的 Google 表格 API 文档:
演示文稿 ID 是包含字母、数字和一些特殊字符的字符串。以下正则表达式可用于从 Google 表格 [原文如此] 网址中提取演示文稿 ID:
/presentation/d/([a-zA-Z0-9-_]+)
这个字符串就是这样 - 只是一个字符串。没有文档解释这些是如何生成的,因此如果不进行调用,就无法发现任何给定的 ID 是否有效。
处理:
根据经验,Google 幻灯片/文档/表格 ID 的长度为 44 个字符,如上面链接的文档中所述,将与特定的正则表达式匹配。有了这个,您可以对ID的有效性进行一些检查,但除此之外,必须进行呼叫以确保。
一些伪代码让你开始:
url = https://docs.google.com/presentation/d/some-presentation-id/edit
slideId = url.extract("/presentation/d/([a-zA-Z0-9-_]+)")
if slideId == null OR slideId.length != 44:
return "Presentation URL not valid"
else:
request = makeHTTPRequest(url)
if request.responseCode = 200:
// display slide
else if request.responseCode = 400:
return "can't access this url, invalid or private"
引用:
- 简介 |幻灯片接口 |谷歌开发者
相关问题:
- 谷歌云端硬盘 API - 更改:列表。获取已删除文件的原始 ID