5

Я хочу, чтобы просмотреть все файлы в Google подборщика для этого я по этой ссылке:ключ разработчика API недействителен при просмотре файла в Google подборщика

https://developers.google.com/picker/docs/

но он возвращает API ключ разработчика недействителен.

Мой код выглядит следующим образом, но эта клавиша работает должным образом в других проектах:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/> 
    <title>Google Picker Example</title> 

    <script type="text/javascript"> 

    // The Browser API key obtained from the Google Developers Console. 
    // Replace with your own Browser API key, or your own key. 
    var developerKey = 'AXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXM'; 

    // The Client ID obtained from the Google Developers Console. Replace with your own Client ID. 
    var clientId = "XXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXX.apps.googleusercontent.com" 

    // Replace with your own App ID. (Its the first number in your Client ID) 
    var appId = "XXXXXXXXXXXX"; 

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

    var pickerApiLoaded = false; 
    var oauthToken; 

    // Use the Google API Loader script to load the google.picker script. 
    function loadPicker() { 
     gapi.load('auth', {'callback': onAuthApiLoad}); 
     gapi.load('picker', {'callback': onPickerApiLoad}); 
    } 

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

    function onPickerApiLoad() { 
     pickerApiLoaded = true; 
     createPicker(); 
    } 

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

    // Create and render a Picker object for searching images. 
    function createPicker() { 
     if (pickerApiLoaded && oauthToken) { 
     var view = new google.picker.View(google.picker.ViewId.DOCS); 
     view.setMimeTypes("image/png,image/jpeg,image/jpg"); 
     var picker = new google.picker.PickerBuilder() 
      .enableFeature(google.picker.Feature.NAV_HIDDEN) 
      .enableFeature(google.picker.Feature.MULTISELECT_ENABLED) 
      .setAppId(appId) 
      .setOAuthToken(oauthToken) 
      .addView(view) 
      .addView(new google.picker.DocsUploadView()) 
      .setDeveloperKey(developerKey) 
      .setCallback(pickerCallback) 
      .build(); 
     picker.setVisible(true); 
     } 
    } 

    // A simple callback implementation. 
    function pickerCallback(data) { 
     if (data.action == google.picker.Action.PICKED) { 
     var fileId = data.docs[0].id; 
     alert('The user selected: ' + fileId); 
     } 
    } 
    </script> 
    </head> 
    <body> 
    <div id="result"></div> 

    <!-- The Google API Loader script. --> 
    <script type="text/javascript" src="https://apis.google.com/js/api.js?onload=loadPicker"></script> 
    </body> 
</html> 
+1

Какие типы учетных данных вы добавили для консоли разработчиков Google? – DaImTo

+0

Кажется, у меня такая же проблема. Учетные данные у меня есть API-ключ, где Type = "Browser". Это то, что я перехожу в setDeveloperKey. У меня также есть идентификатор клиента OAuth 2.0, где Type = «Веб-приложение». Я передаю clientId.split ('-') [0] в setAppId. setOAuthToken передается действительный токен аутентификации, который я могу использовать для извлечения файлов из Drive API. picker.setVisible (true) приводит к всплывающему окну, который просто говорит: «Ключ разработчика API недействителен». Если я удалю вызов setDeveloperKey, тогда сборщик работает. – Kwateco

ответ

3

Кажется, вы не позволили «Google сборщика API» в Google консоли