我已经阅读了很多其他人的一半问题,并尝试了他们的解决方案,但我无法随心所欲。
我首先从谷歌这里运行示例教程: https://campus.codeschool.com/courses/discover-drive/
然后我从这里运行示例代码: https://developers.google.com/picker/docs/index
使用我的API和客户端密钥运行这些代码(我甚至创建了新密钥,尝试仅使用.apps.googleusercontent.com之前的部分作为客户端密钥,正如我在其他一些示例代码中看到的那样,等等。)我得到了相同的结果。
该页面加载并要求获取访问Google帐户的权限一旦我授予它权限,它就会恢复为以下错误:
我有一个无用的窗口错误,上面写着:
出错了! API开发人员密钥无效。
现在其他人说错误是正常的,他们的代码仍然有效。另一方面,我的工作无效,它给了我这个错误。
<script>
var clientId = '249642562982-8ss843cvik6r1rrm94i1kt5cf4jf201c.apps.googleusercontent.com';
var developerKey = 'AIzaSyBeDBmIqzCYCNvrpSwXcLz6ido_qGZL6sg';
var accessToken;
function onApiLoad() {
gapi.load('auth', authenticateWithGoogle);
gapi.load('picker');
}
function authenticateWithGoogle() {
window.gapi.auth.authorize({
'client_id': clientId,
'scope': ['https://www.googleapis.com/auth/drive']
}, handleAuthentication);
}
function handleAuthentication(result) {
if(result && !result.error) {
accessToken = result.access_token;
setupPicker();
}
}
function setupPicker() {
var picker = new google.picker.PickerBuilder()
.setOAuthToken(accessToken)
.setDeveloperKey(developerKey)
.addView(new google.picker.DocsUploadView())
.enableFeature(google.picker.Feature.MULTISELECT_ENABLED)
.setCallback(myCallback)
.build();
picker.setVisible(true);
}
function myCallback(data) {
if (data.action == google.picker.Action.PICKED) {
alert(data.docs[0].name);
} else if (data.action == google.picker.Action.CANCEL) {
alert('goodbye');
}
}
</script>
<script src="https://apis.google.com/js/api.js?onload=onApiLoad"></script>
这让我疯了!感觉就像我尝试了一切,没有任何工作。谷歌为什么要花时间创建一个教程网站,并提供全面的视频课程,如果flippin'结果代码不起作用,请检查代码的有效性!?如果视频和示例代码已损坏,请将其删除!我整天浪费在这上面。
任何人都可以帮我弄清楚这里发生了什么吗?
参考文献:
How to upload file on google drive from my website?
Using Google Drive in an iFrame doesn't work