簡體   English   中英

如何使用OAuth 2.0 [GAS和GAE]通過GAE應用程序對Google應用程序腳本進行身份驗證

[英]how to authenticate google app script with GAE application using OAuth 2.0 [ GAS and GAE ]

我們已經開發了應用程序,它將使用OAuth 1.0通過GAS腳本與GAE應用程序進行交互,但是我們無法通過OAuth 2.0進行開發,這是因為OAuth訪問失敗。

getservice.hasAccess()始終返回false。 我對於必須在身份驗證過程中使用哪個URL感到非常困惑。

我已隨附Oauth 1和OAuth 2的源以供參考

Oauth 1.0
=========
envVars.url = myapp.appspot.com;

  var oAuthConfig = UrlFetchApp.addOAuthService(envVars.serviceName);
  oAuthConfig.setRequestTokenUrl(envVars.url + '/_ah/OAuthGetRequestToken');
  oAuthConfig.setAuthorizationUrl(envVars.url + '/_ah/OAuthAuthorizeToken');
  oAuthConfig.setAccessTokenUrl(envVars.url + '/_ah/OAuthGetAccessToken');

  var requestData = {
    "oAuthServiceName": envVars.serviceName,
    "oAuthUseToken": "always"
  };

  requestData.muteHttpExceptions = true;




Oauth 2.0
=========

envVars.url = myapp.appspot.com
 getservice = getService();


 if (getservice.hasAccess()) {
    Logger.log("All OK");
    return;
  }
 else {
    var authorizationUrl = getservice.getAuthorizationUrl();
    Logger.log('Open the following URL and re-run the script: %s',
               authorizationUrl);
    showURL(authorizationUrl);
  }

function getService()
{
   return OAuth2.createService(envVars.serviceName)
  // Set the endpoint URLs.
  .setAuthorizationBaseUrl(envVars.url + '/_ah/OAuthAuthorizeToken')
  .setTokenUrl(envVars.url + '/_ah/OAuthGetAccessToken')               


  // Set the client ID and secret.
  .setClientId(CLIENT_ID)
  .setClientSecret(CLIENT_SECRET)

  // Set the name of the callback function that should be invoked to complete
  // the OAuth flow.
  .setCallbackFunction('authCallback')

  // Set the property store where authorized tokens should be persisted.
  .setPropertyStore(PropertiesService.getUserProperties());
}

請注意,OAuth 1.0於2012年4月20日正式棄用。建議您盡快將OAuth 1.0遷移到OAuth 2.0

如果腳本使用可以訪問私有數據的服務,則會出現授權對話框。 Apps腳本確定授權范圍。

如果代碼更改添加了新服務,您先前授權的腳本還將要求其他授權。 如果腳本僅使用無法訪問用戶數據的服務,則不請求授權

查看此文檔,其中討論了腳本的權限和類型: https : //developers.google.com/apps-script/guides/services/authorization#permissions_and_types_of_scripts

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM