使用Google应用程序脚本的多个Twitter帐户

使用Google应用程序脚本的多个Twitter帐户,twitter,oauth,google-apps-script,Twitter,Oauth,Google Apps Script,我正在试验谷歌应用程序脚本和Twitter,我希望能够通过一个电子表格访问多个Twitter帐户。目前,我尝试了下面的方法(每个Twitter帐户都有一个唯一的OAuthService名称),这种方法很有效,但很笨拙,因为每次运行脚本时,我必须随机授权一个帐户(而不是多个),弹出的对话框没有告诉我要验证哪个帐户(即id) 理想情况下,我想强制每个用户在第一次使用Twitter时授予其权限,然后将该令牌存储起来供以后使用——谷歌应用程序脚本是否可以做到这一点 谢谢 function oAuth(i

我正在试验谷歌应用程序脚本和Twitter,我希望能够通过一个电子表格访问多个Twitter帐户。目前,我尝试了下面的方法(每个Twitter帐户都有一个唯一的OAuthService名称),这种方法很有效,但很笨拙,因为每次运行脚本时,我必须随机授权一个帐户(而不是多个),弹出的对话框没有告诉我要验证哪个帐户(即id)

理想情况下,我想强制每个用户在第一次使用Twitter时授予其权限,然后将该令牌存储起来供以后使用——谷歌应用程序脚本是否可以做到这一点

谢谢

function oAuth(id) {

  var oauthConfig = UrlFetchApp.addOAuthService(NS_TWITTER + id);
  oauthConfig.setAccessTokenUrl("https://api.twitter.com/oauth/access_token");
  oauthConfig.setRequestTokenUrl("https://api.twitter.com/oauth/request_token");
  oauthConfig.setAuthorizationUrl("https://api.twitter.com/oauth/authorize");
  oauthConfig.setConsumerKey(CONSUMER_KEY);
  oauthConfig.setConsumerSecret(CONSUMER_SECRET);
};
然后

  var options =
  {
    "method": "GET",
    "oAuthServiceName":NS_TWITTER + id,
    "oAuthUseToken":"always",
  };

  try {

    var result = UrlFetchApp.fetch(feed, options);    
  }
是的,这是可能的。 要存储令牌值,请使用userProperties(文档)或CacheService,它在缓存(文档)中保留20分钟

使用UserProperties存储令牌的示例

UserProperties.setProperty('token', 'value');
var token = UserProperties.getProperty('token');
使用CachService存储令牌的示例

// Gets a cache that is private to the current user
var cache = CacheService.getPrivateCache();
cache.put('token', 'value');
var token = cache.get('token');
构建缓存解决方案后,您需要检查令牌是否与twitterapi有效。如果无效,您应该再次要求验证