2014-06-21 2 views
0

Я хочу интегрировать Google pick pick api в свое приложение. Но функция onload для google picker api не звонит. Ниже мой код.Google picker api не входит в функцию onApiLoad

<!DOCTYPE html> 
<html> 
<head> 
    <meta name="viewport" content="width=device-width" /> 
    <title>GoogleDriveApi</title> 
    <script type="text/javascript" src="https://apis.google.com/js/api.js?onload=onApiLoad"></script>  
</head> 
<body> 
<div> 
</div> 
<script type="text/javascript"> 
/**************************************************************** start of Google api code ************************************************************************************************/ 
    // The API developer key obtained from the Google Developers Console. 
var developerKey = 'AIzaSyAZjLxjshv3FpkLK6517tiZ2nYwt6rJZHk'; 

// The Client ID obtained from the Google Developers Console. 
var clientId = '814476538527-pijtu7ck89ofep1j4tqr2j38ltruahtd.apps.googleusercontent.com'; 

// Scope to use to access user's photos. 
var scope = ['https://www.googleapis.com/auth/drive']; 

var pickerApiLoaded = false; 
var oauthToken; 

// Use the API Loader script to load google.picker and gapi.auth. 
function onApiLoad() { 
    console.log("load function calledd"); 
    gapi.load('auth', { 'callback': onAuthApiLoad }); 
    gapi.load('picker', { 'callback': onPickerApiLoad }); 
} 

function onAuthApiLoad() { 
    console.log("auth api success"); 
    window.gapi.auth.authorize(
     { 
      'client_id': clientId, 
      'scope': scope, 
      'immediate': false 
     }, 
     handleAuthResult); 
} 

function onPickerApiLoad() { 
    console.log("picker load"); 
    pickerApiLoaded = true; 
    createPicker(); 
} 

function handleAuthResult(authResult) { 
    console.log("authressult"); 
    console.log(authResult); 
    if (authResult && !authResult.error) { 
     oauthToken = authResult.access_token; 
     createPicker(); 
    } 
} 

// Create and render a Picker object for picking user Photos. 
function createPicker() { 
    console.log("create picker"); 
    if (pickerApiLoaded && oauthToken) { 
     var picker = new google.picker.PickerBuilder(). 
      addView(google.picker.DocsUploadView()). 
      setOAuthToken(oauthToken). 
      setDeveloperKey(developerKey). 
      setCallback(pickerCallback). 
      build(); 
     picker.setVisible(true); 
    } 
} 

// A simple callback implementation. 
function pickerCallback(data) { 
    var url = 'nothing'; 
    if (data[google.picker.Response.ACTION] == google.picker.Action.PICKED) { 
     var doc = data[google.picker.Response.DOCUMENTS][0]; 
     url = doc[google.picker.Document.URL]; 
    } 
    var message = 'You picked: ' + url; 
    document.getElementById('result').innerHTML = message; 
} 



/**************************************************************** end of Google api code ************************************************************************************************/ 
</script> 

выше страница .cshtml будет вызываться при нажатии на кнопку на странице Код

$("#button").click(function(){ 
    window.location.href = "/Contact/GoogleApi"; 
}); 

Контроллер

public ActionResult GoogleApi(){ 
     retunr View("GoogleApi"); 
} 

страница GoogleApi.cshmtl является но он не звонит на функцию onApiLoad. Я установил GooglePickerApi в положение «Вкл.». Может ли кто-нибудь знать, что в этом плохого.

ответ

0

Использование сценария:

 script type="text/javascript" src="https://apis.google.com/js/api.js?onload=onApiLoad">

в теле вместо головы работал для меня. Не знаю, какая именно причина этого. Надеюсь, вы, возможно, догадались об этом, так как пост составляет около 6 месяцев. Если вы сейчас выполняете эти сценарии, пожалуйста, дайте мне знать! С казненным я подразумеваю порядок исполнения!

Смежные вопросы