Advertisement
rdflynn

GDrive Picker Issue

Feb 21st, 2015
600
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 2.68 KB | None | 0 0
  1. <?php
  2.     session_start();
  3.     $_SESSION['user_id'] = 1;
  4.  
  5.     $db = new PDO('mysql:host=xx.xx.xx.xx;dbname=megabadg_gredrop', 'megabadg_gredrop', 'xxxxxxxxxxxxxxxx');
  6.  
  7.     $user = $db->prepare("SELECT * FROM gredrop WHERE id = :user_id");
  8.     $user->execute(['user_id' => $_SESSION['user_id']]);
  9.     $user = $user->fetch(PDO::FETCH_ASSOC);
  10.  
  11.     $gDriveFolderIDForJS = $user['gDriveFolderID'];
  12. ?>
  13. <html>
  14.  
  15. <head>
  16. <script type="text/javascript" src="//apis.google.com/js/api.js?onload=onApiLoad"></script>
  17. <script type="text/javascript">
  18.  
  19.     var oauthToken;
  20.     var clientId = '342532800031-c0751t5au05pcgvtb2ba7jn1atkbiioh.apps.googleusercontent.com';
  21.     var developerKey = 'AIzaSyD8ScChsLAhxaXrmzuN6debchRLy2Se0O4';
  22.  
  23.     function onApiLoad() {
  24.         gapi.load('auth', {'callback':onAuthApiLoad});
  25.         gapi.load('picker');
  26.     }
  27.     function onAuthApiLoad() {
  28.         window.gapi.auth.authorize({
  29.             'client_id': clientId,
  30.             'scope': ['https://www.googleapis.com/auth/drive']
  31.         }, handleAuthResult);
  32.     }
  33.    
  34.     function handleAuthResult(authResult) {
  35.         if(authResult && !authResult.error) {
  36.             oauthToken = authResult.access_token;
  37.             createPicker();
  38.         }
  39.     }
  40.  
  41.     function createPicker() {
  42.             var view = new google.picker.DocsView()
  43.             .setParent('root')
  44.             .setIncludeFolders(true);
  45.  
  46.             var uploadview = new google.picker.DocsUploadView()
  47.             .setParent('<?php echo($gDriveFolderIDForJS); ?>')
  48.             .setIncludeFolders(true);
  49.  
  50.             var picker = new google.picker.PickerBuilder()
  51.             .enableFeature(google.picker.Feature.MINE_ONLY)
  52.             .enableFeature(google.picker.Feature.NAV_HIDDEN)
  53.             .enableFeature(google.picker.Feature.MULTISELECT_ENABLED)
  54.             .setAppId('342532800031-c0751t5au05pcgvtb2ba7jn1atkbiioh.apps.googleusercontent.com')
  55.             .setAuthUser(clientId)
  56.             .setOAuthToken(oauthToken) //Optional: The auth token used in the current Drive API session.
  57.             // TODO:
  58.             // the setOAuthToken call works to log the user in correctly, but causes a problem where
  59.             // uploads fail. removing it allows uploads to complete successfully, but if the user
  60.             // doesn't have a proper login cookie they are prompted for login credentials...
  61.             //
  62.             // ideally we want the best of both worlds
  63.             .addView(uploadview)
  64.             //.addView(view)
  65.             .setCallback(pickerCallback)
  66.             .build();
  67.         picker.setVisible(true);
  68.     }
  69.  
  70.     // A simple callback implementation.
  71.     function pickerCallback(data) {
  72.         var message = 'You picked: ' + ((data.action == google.picker.Action.PICKED) ? data.docs[0].url : 'nothing');
  73.         document.getElementById('result').innerHTML = message;
  74.     }
  75. </script>
  76. </head>
  77. <body>
  78. <div id="result"></div>
  79. <script type="text/javascript" src="//apis.google.com/js/api.js?onload=onApiLoad"></script>
  80. </body>
  81. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement