0

リクエストからグーグルフュージョンテーブルへのグーグルスクリプトでこのコードを使用してい ます https://developers.google.com/fusiontables/docs/samples/apps_script

function getGAauthenticationToken(email, password) {
  password = encodeURIComponent(password);
  var response = UrlFetchApp.fetch("https://www.google.com/accounts/ClientLogin", {
      method: "post",
      payload: "accountType=GOOGLE&Email=" + email + "&Passwd=" + password + "&service=fusiontables&Source=testing"
  });
  var responseStr = response.getContentText();
  responseStr = responseStr.slice(responseStr.search("Auth=") + 5, responseStr.length);
  responseStr = responseStr.replace(/\n/g, "");
  return responseStr;
}

function getdata(authToken) {
  query = encodeURIComponent("SHOW TABLES");
  var URL = "http://www.google.com/fusiontables/api/query?sql=" + query;
  var response = UrlFetchApp.fetch(URL, {
     method: "get",
     headers: {
          "Authorization": "GoogleLogin auth=" + authToken,
     }
  });
  return response.getContentText();
}

function test(){
  var email = "xyz@gmail.com";
  var pass = "xyz";
  var token = getGAauthenticationToken(email,pass);
  Logger.log(getdata(token));
}

しかし、 user/pass なしで OAuth 2.0 に接続するにはどうすればよいですか?

4

1 に答える 1

0

oAuth 2.0 ではなく、Apps Script はまだ 1.0 のみをサポートしています。ただし、Fusion Tables API では 1.0 を通常どおり使用できます。ユーザーパス情報は必要ありません。これは、Google API への UrlFetch リクエストから oAuth を設定するために、私がずっと前に書いた関数です。

/**
 * Set up Google's oAuth authentication for UrlFetch
 * @retuns {Object} args to be used UrlFetchApp
 * @param {string} name oAuth service name, can be anything
 *     but must not repeat between different scopes
 *     recommend to use a meaninful name related to the scope
 * @param {string} scope google scope for oAuth
 */
function googleOAuth(name,scope) {
  var oAuthConfig = UrlFetchApp.addOAuthService(name);
  oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope);
  oAuthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
  oAuthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
  oAuthConfig.setConsumerKey('anonymous');
  oAuthConfig.setConsumerSecret('anonymous');
  return {oAuthServiceName:name, oAuthUseToken:"always"};
}

現在、注目すべきライブラリもあり、Google Apps Script サイトにリンクされており、さらに多くのことを自動化できます。ご覧ください。

于 2012-07-12T04:52:08.400 に答える