如何为YouTube Data API请求添加API密钥以完成授权?
如何为YouTube Data API请求添加API密钥?
嘿,这事儿其实挺简单的,我帮你拆解清楚,再针对你提到的search/list接口代码片段做具体修改:
第一步:先搞定可用的API密钥
首先得在Google Cloud控制台完成基础配置:
- 创建或选择一个项目,然后启用YouTube Data API v3
- 生成一个API密钥(记得给密钥加个用途限制,比如只允许调用YouTube Data API,别留成全局可用,安全第一)
第二步:给请求添加密钥的具体方式
不管你是直接发HTTP请求还是用官方SDK,核心都是把密钥作为参数传入。
直接发送HTTP请求的情况
官方文档里的search/list基础请求是这样的:
GET https://www.googleapis.com/youtube/v3/search?part=snippet&q=surfing&maxResults=25
你只需要在URL末尾追加&key=你的API密钥就行,修改后如下:
GET https://www.googleapis.com/youtube/v3/search?part=snippet&q=surfing&maxResults=25&key=YOUR_API_KEY_HERE
Python SDK示例(修改官方代码片段)
官方给出的无密钥Python代码大概是这样:
from googleapiclient.discovery import build youtube = build('youtube', 'v3') request = youtube.search().list( part='snippet', q='surfing', maxResults=25 ) response = request.execute()
要添加密钥,只需要在build方法里传入developerKey参数:
from googleapiclient.discovery import build # 替换成你的实际API密钥 YOUR_API_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" youtube = build('youtube', 'v3', developerKey=YOUR_API_KEY) request = youtube.search().list( part='snippet', q='surfing', maxResults=25 ) response = request.execute()
JavaScript浏览器端示例
如果用浏览器端的gapi库,官方基础代码可以改成这样:
gapi.load('client', () => { gapi.client.init({ 'apiKey': 'YOUR_API_KEY_HERE', // 在这里添加你的API密钥 'discoveryDocs': ['https://www.googleapis.com/discovery/v1/apis/youtube/v3/rest'], }).then(() => { return gapi.client.youtube.search.list({ 'part': 'snippet', 'q': 'surfing', 'maxResults': 25 }); }).then((response) => { console.log(response.result); }); });
⚠️ 注意:浏览器端使用API密钥时,一定要在Google Cloud控制台给密钥设置HTTP referrer限制,避免被滥用。
内容的提问来源于stack exchange,提问作者sometimesiwritecode




