2013-02-12 157 views
-1

以下链接中给出的代码在线工作。它在线运行时检索文件,但在使用我自己的客户端ID和API密钥时它不起作用。它给出错误的客户端来源错误。使用谷歌浏览器api搜索和列表

http://jsfiddle.net/Rbg44/4/

var CLIENT_ID = '898331037992.apps.googleusercontent.com'; 
var API_KEY = 'AIzaSyCGhZLgwJFVlMgp0aPGglKDRHbasrw_eNE'; 
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 = ''; 
    authorizeButton.onclick = 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({'maxResults': 5 }); 
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 fileInfo = document.createElement('li'); 
      fileInfo.appendChild(document.createTextNode('TITLE: ' + titulo + ' - LAST   MODIF: ' + fechaUpd + ' - BY: ' + userUpd));     
     document.getElementById('content').appendChild(fileInfo); 
    } 
});  

}

 $(document).ready(function() { 
     $('#authorize-button').on('click', handleAuthClick); 
     $.getScript('//apis.google.com/js/api.js', function() { 
     gapi.load('auth:client', handleClientLoad); 
     }); 
     }); 

回答

0

你必须正确地配置您的项目API控制台中使用自己的证书和产地。检查JavaScript的快速入门的详细信息:https://developers.google.com/drive/quickstart-js

+0

感谢claudio ..我想通了昨天..我没有正确配置javascript的来源.. :) – user2038580 2013-02-13 05:26:53

+0

该代码正常工作的大部分时间,但它怎么会停止响应呢? – user2038580 2013-02-13 09:32:09

+0

当它不起作用时,你得到的错误是什么? – 2013-02-13 17:59:29

0

可以解决客户来源问题通过以下方式, 你只需访问谷歌开发者控制台 并转到您的凭据,在那里你可以看到你的客户端ID,客户端密钥等 和那么你必须点击Edit Settings按钮,然后在第一个文本框中输入你自己的应用程序url的地址。 ,然后再次运行你的应用程序......