2015-01-02 66 views
0

简而言之,用户使用Google Drive Picker API从Google驱动器中选择一个文档,然后生成一个URL。我想缩短该网址的电流太长,因为它的生成。URL Shortener - 自动缩短网址

下面是产生URL

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

    // The Client ID obtained from the Google Developers Console. 
    var clientId = 'ID'; 

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

    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(). 
      enableFeature(google.picker.Feature.MULTISELECT_ENABLED). 
      addView(google.picker.ViewId.PDFS). 
      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 = 'The following(s) were stored in Parse: ' + url; 
    document.getElementById('result').innerHTML = message; 

    } 






    } 


</script> 
    </head> 
    <body> 
    <div id="result"></div> 
    <div id="demo"> 

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

在特定的代码,以下是生成的URL部分:

// 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 = 'The following(s) were stored in Parse: ' + url; 
     document.getElementById('result').innerHTML = message; 

    } 

我看看https://developers.google.com/url-shortener/,但不知道如何整合它。

回答

1

首先,您必须在onApiLoad函数中包含URL Shortner API的范围。在范围解决后,一旦向Drive API请求,您应该将文档URL发送到URL Shortener API。

你可以依靠类似于以下(根据提供的https://developers.google.com/api-client-library/javascript/samples/samples的例子)的函数:

<script> 
    function appendResults(text) { 
    var results = document.getElementById('results'); 
    results.appendChild(document.createElement('P')); 
    results.appendChild(document.createTextNode(text)); 
    } 

    function makeRequest() { 
    var request = gapi.client.urlshortener.url.insert({ 
     'longURL': 'DRIVE DOCUMENT URL' 
    }); 
    request.then(function(response) { 
     appendResults(response.result.longUrl); 
    }, function(reason) { 
     console.log('Error: ' + reason.result.error.message); 
    }); 
    } 

    function init() { 
    gapi.client.setApiKey('YOUR API KEY'); 
    gapi.client.load('urlshortener', 'v1').then(makeRequest); 
    } 
</script> 
<script src="https://apis.google.com/js/client.js?onload=init"></script> 
+0

对不起,问这个,但我真的很困惑如何我的例子中我目前的整合代码显示在我的初始文章中。 –