2014-09-11 2 views
0

Я хочу подключиться к API календаря ресурсов с Oauth2, но токен, указанный в истечении 3600 секунд, как я могу получить оставшийся токен?Токен с Oauth2 в приложениях Google

Я вижу информацию об автономном токене, но я не знаю, как их использовать? https://developers.google.com/accounts/docs/OAuth2WebServer?hl=FR#offline

Это мой сценарий на самом деле:

function doGet(e){ 

    if(e.parameter.code){ 
    var oauthResponse = getAndStoreAccessToken(e.parameter.code); 
    PropertiesService.getUserProperties().setProperty("ResourceCalToken", oauthResponse); 
    } 
     return HtmlService.createTemplateFromFile('install').evaluate(); 
    } 

    function getResourceCals(){ 
    var token = JSON.parse(PropertiesService.getUserProperties().getProperty("ResourceCalToken")); 
    var url = 'https://apps-apis.google.com/a/feeds/calendar/resource/2.0/'+ yourDomainName +'/'+    idresource +''; 
    var parameters = { method : 'get', 
         headers : {'Authorization': 'Bearer '+token.access_token}, 
         contentType:'application/json',     
         muteHttpExceptions:true}; 
     var response = UrlFetchApp.fetch(url,parameters).getContentText(); 



    Logger.log(response); 


    } 



    function getURLForAuthorization(){ 

    return AUTHORIZE_URL + '?response_type=code&client_id='+CLIENT_ID+'&redirect_uri='+REDIRECT_URL +'&scope='+ scope; 
    } 


    function getAndStoreAccessToken(code){ 
    var parameters = { method : 'post', 
         payload :  'client_id='+CLIENT_ID+'&client_secret='+CLIENT_SECRET+'&grant_type=authorization_code&redirect_uri=' +REDIRECT_URL+'&code=' + code}; 
    return UrlFetchApp.fetch(TOKEN_URL,parameters).getContentText(); 
    } 

спасибо за вашу помощь

ответ

0

Чтобы получить маркер, который не истечет, вы должны установить ваш access_type в автономном. Это даст вам токен обновления вместе с вашим токеном доступа. Ток обновления не истекает, но вам нужно будет убедиться, что вы сохранили его правильно, иначе вам придется снова пройти процесс авторизации. У Google есть клиентские библиотеки на нескольких языках, что упрощает процесс. Here - один для JavaScript.

Надеюсь, что это поможет!

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