8768 sujets

Développement web côté serveur, CMS

Je veux mettre en place APi Google Picker, sauf que j'ai un problème avec oauth 2.0 (au moins je crois...)

je suis novice dans les api...
le javascript je l'ai mis direct dans ma page html et j’appelle ma page direct en ligne et j'ai ce message:
upload/1499085204-66387-norigine.jpg

et en plus trop dur de trouver une doc bien claire!

quelqu’un a une idée de mon problème ?

voici le code:
<!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.
      var developerKey = 'xxxxxxxYYYYYYYY-12345678';

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

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

      var pickerApiLoaded = false;
      var oauthToken;

      // Use the API Loader script to load google.picker and gapi.auth.
      function onApiLoad() {
        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 picking user Photos.
      function createPicker() {
        if (pickerApiLoaded && oauthToken) {
          var picker = new google.picker.PickerBuilder().
              addView(google.picker.ViewId.FOLDERS).
             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;
      }
    </script>
  </head>
  <body bgcolor="#f6f6f6">
    <div id="result"></div>
picker
    <!-- The Google API Loader script. -->
    <script type="text/javascript" src="https://apis.google.com/js/api.js?onload=onApiLoad"></script>
  </body>
</html>

Modifié par justrundesign (03 Jul 2017 - 14:36)
Modérateur
Bonjour

C'est le code d'exemple, tu as bien remplacé le contenu de ces deux variables par tes propres valeurs? :

// The Browser API key obtained from the Google Developers Console.
      var developerKey = 'xxxxxxxYYYYYYYY-12345678';

      // The Client ID obtained from the Google Developers Console. Replace with your own Client ID.
      var clientId = "1234567890-abcdefghijklmnopqrstuvwxyz.apps.googleusercontent.com"
Bonjour,
kustolovic a écrit :
C'est le code d'exemple, tu as bien remplacé le contenu de ces deux variables par tes propres valeurs?

Je ne pense pas non Smiley cligne
mais bien sur que si! Smiley eek
j'ai créée mes accès OAuth2 et je les ai repris dans le code, mais j'ai toujours le même message d'erreur
upload/1499150306-66387-norigine.jpg

ma question est: est-ce que je copie le code comme tel et je crée ma page html, je la monte sur mon serveur qui tourne sur Apache et ça devrait marcher?

Ne faut il pas installer les packages sur le serveur pour que ça marche? ou autre?

je vois pas pourquoi ça marche pas .. HELP
Modifié par justrundesign (04 Jul 2017 - 08:41)
Bonjour,

justrundesign a écrit :
mais bien sur que si! Smiley eek

Ah désolé alors Smiley confus

Je n'y connais pas grand chose avec cette API, mais elle devrait je pense quand même fonctionner en local, et donc je ne pense pas qu'il ait besoin d'installer quoi que se soit sur ton serveur.
pas de souci SolidSnake Smiley cligne

J'ai recréé le profil sur OAuth2 et ça marche ou presque!
Il entre dans l'app google avec les logins mais là j'ai un autre souci avec , mon message d'erreur

upload/1499154908-66387-scope.jpg

Une idée?

et la dernière question, est-ce que je suis obligé de passer par l’étape de connexion pour visualiser mes dossiers Drive? En fait je voulais les mettre à la disposition des internautes sur mon site.... sans qu'il soit obligé de se connecter!
Modifié par justrundesign (04 Jul 2017 - 09:59)
Modérateur
Juste comme ça une idée: il ne faudrait pas mettre ton drive (ou le dossier que tu partage) en lecture publique ou quelque chose d'équivalent? Car selon le message la lecture sur ton drive nécessite une authentification.
après mes recherches,
mon site n'était pas validé par google, donc obligé de passer par Search Console de Google pour validation du site!