1
以下JavaScript代碼使用Web應用程序帳戶訪問驅動器API。我需要一些幫助來修改代碼,以便它可以爲整個應用程序使用服務帳戶,而不是Web應用程序帳戶,以便無需登錄到特定的Gmail帳戶即可從Google Drive中檢索文件。如何使用服務帳戶代替谷歌驅動API的Web應用程序
如果有人能指出代碼中的哪部分應該更改爲使用服務帳戶,並仍然保留從谷歌驅動器檢索文件的功能,那將會非常有幫助。
<?php
$con = mysql_connect("localhost","root","root");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("cerebra", $con);
$sql="select name from details order by download desc limit 20";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
$query=mysql_query($sql,$con);
$names=array();
$index=0;
while($row=mysql_fetch_array($query)){
$names[$index]=$row[0];
$index++;
}
foreach($names as $a)
echo $a;
?>
<html>
<head>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
var CLIENT_ID = '106997880011-je955vl71s3hbj7vh03oh1df1h5l9u9q.apps.googleusercontent.com';
var API_KEY = 'AIzaSyDYksh35q9jS1_YumnjWYR-717AoCKSXhM';
var SCOPES = 'https://www.googleapis.com/auth/drive';
function handleClientLoad() {
gapi.client.setApiKey(API_KEY);
window.setTimeout(checkAuth,1);
}
function checkAuth() {
var options = {
client_id: CLIENT_ID,
scope: SCOPES,
immediate: true
};
gapi.auth.authorize(options, handleAuthResult);
}
function handleAuthResult(authResult) {
<!-- var authorizeButton = document.getElementById('authorize-button');
if (authResult && !authResult.error) {
<!--authorizeButton.style.visibility = 'hidden';
makeApiCall();
} else {
<!-- authorizeButton.style.visibility = '';
handleAuthClick;
}
}
function handleAuthClick(event) {
var options = {
client_id: CLIENT_ID,
scope: SCOPES,
immediate: false
};
gapi.auth.authorize(options, handleAuthResult);
return false;
}
function makeApiCall() {
gapi.client.load('drive', 'v2', makeRequest);
}
function makeRequest() {
var request = gapi.client.drive.files.list();
request.execute(function(resp) {
for (i=0; i<resp.items.length; i++) {
var titulo = resp.items[i].title;
var fechaUpd = resp.items[i].modifiedDate;
var userUpd = resp.items[i].lastModifyingUserName;
var userEmbed = resp.items[i].embedLink;
var userAltLink = resp.items[i].alternateLink;
var download = resp.items[i].webContentLink;
var hold="Download";
<!-- var fileInfo = document.createElement('li');
<!-- fileInfo.appendChild(document.createTextNode('TITLE: ' + titulo + ' - LAST MODIF: ' + fechaUpd + ' - BY: ' + userUpd +' url: ' + hold.link(download)));
<!-- document.getElementById('content').appendChild(fileInfo);
document.write(titulo + " ");
document.write(hold.link(download) + "<br>");
}
});
}
$(document).ready(function() {
<!-- $('#authorize-button').on('click',
handleAuthClick;
$.getScript('//apis.google.com/js/api.js', function() {
gapi.load('auth:client', handleClientLoad);
});
});
</script>
</head>
<body>
</body>
</html>
只能由文件公衆開放,但你不能抓取對客戶端公開的文件,要做到這一點,你需要先登錄。如果您想讓公共內容在沒有登錄的情況下對用戶可見,則需要爲其創建後端(對於PHP中的eaxample),否則無法抓取新內容。 – Codebeat 2013-09-03 21:21:36