我正在尝试使用 javascript 客户端 API 为 youtube 实现可恢复上传。我已经设法使用g-signin2
按钮使登录工作,但我无法让 access_token 与请求一起发送。这就是我呈现登录按钮的方式:
<span
class="g-signin2"
data-onsuccess="youtubeUploaderSigninCallback"
data-scope="https://www.googleapis.com/auth/youtube.upload https://www.googleapis.com/auth/youtube">
</span>
而且我正在使用从谷歌加载的以下脚本文件(我似乎无法让一个没有另一个工作)
<script src="https://apis.google.com/js/platform.js" async defer></script>
<script src="https://apis.google.com/js/client.js" async defer></script>
我正在使用来自https://developers.google.com/youtube/v3/code_samples/javascript#upload_video的代码编辑示例使用 XHR 进行可恢复上传。但是这些示例使用此处标记为已弃用的身份验证函数:https ://developers.google.com/api-client-library/javascript/reference/referencedocs
所以我更改的主要内容是使用auth2
andg-signin2
而不是result.access_token
and g-signin
。
所以我一直在尝试使用这些auth2
函数来获取访问令牌,但是access_token
当我执行以下代码时该属性未定义
gapi.auth2.getAuthInstance().currentUser.get().getAuthResponse()
我试图获取访问令牌的方式记录在这里:https ://developers.google.com/api-client-library/javascript/features/cors#making-authenticated-requests
所以这些是我的选择,我猜:
- 找到一种从用户对象中获取访问令牌的方法
- (我发现 user.hg.access_token 包含我需要的令牌
- 但“hg”对我来说似乎是一个缩小的属性
- 所以我不打算使用它,因为它可能会随着更新而改变
- 编辑:正如评论中指出的那样,
hg
确实是一个缩小的属性,现在不再存在
- 将进度事件添加到 gapi.client.request()
- 但 xhr 对象似乎没有暴露
- 使用记录为已弃用的代码
谁能帮我这个?几个小时以来,我一直在寻找一个可以接受的解决方案,我现在想哭……孤身一人,绝望。
在此先感谢,罗伯