2013-03-06 18 views
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 + "&nbsp;"); 
       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> 
+0

只能由文件公衆開放,但你不能抓取對客戶端公開的文件,要做到這一點,你需要先登錄。如果您想讓公共內容在沒有登錄的情況下對用戶可見,則需要爲其創建後端(對於PHP中的eaxample),否則無法抓取新內容。 – Codebeat 2013-09-03 21:21:36

回答

相關問題