【问题标题】:Getting a Parameters Error for OAuth2获取 OAuth2 的参数错误
【发布时间】:2015-06-26 02:51:10
【问题描述】:

我对此很陌生,目前正在努力获取 OAuth 2.0 令牌以与 Google Apps 脚本一起使用以写入 Fusion Table。我正在使用来自 Arun 的 Google Developers Live 代码,但我似乎无法获得访问令牌。当我运行下面的 doGet 函数时,它给了我一个“类型错误:无法从未定义中读取属性“参数””。

function doGet(e) {
    var HTMLToOutput;
    if(e.parameters.code){//if we get "code" as a parameter in, then this is a callback. we can make this more explicit
    getAndStoreAccessToken(e.parameters.code);
    HTMLToOutput = '<html><h1>Finished with oAuth</h1>You can close this window.</html>';
    }
    return HtmlService.createHtmlOutput(HTMLToOutput);
 }

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
  };

  var response = UrlFetchApp.fetch(TOKEN_URL,parameters).getContentText();   
  var tokenResponse = JSON.parse(response);

  // store the token for later retrieval
  UserProperties.setProperty(tokenPropertyName, tokenResponse.access_token);
}

任何帮助将不胜感激。

【问题讨论】:

    标签: google-apps-script oauth-2.0 google-oauth


    【解决方案1】:

    在 Appsscript 中有一些触发器,这些触发器执行一段代码以响应某些操作或参数。

    在这种情况下,您使用的是触发器 doGet(这是您的函数的名称)。如您所见,该函数接收参数“e”。如果您直接在环境中运行该函数,则此参数将是“未定义的”,因为您没有向该函数传递任何内容。

    当您将代码作为 Web 应用程序访问时,会执行此触发器。为此,您必须单击“保存”按钮旁边的图标(看起来像带箭头的云)here,您可以找到相关信息。

    当您通过部署应用后获得的 url 访问您的代码时,该函数会接收必要的参数(在“e”内),然后它应该可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-14
      • 2016-06-22
      • 1970-01-01
      • 2012-07-14
      • 2016-08-16
      • 2012-06-16
      • 1970-01-01
      相关资源
      最近更新 更多