使用Google App Script的多个Twitter帐户

时间:2013-11-21 01:56:26

标签: twitter oauth google-apps-script

我正在尝试使用Google Apps脚本和Twitter,我希望能够通过一个电子表格访问多个Twitter帐户。目前我已经尝试了下面的方法(每个Twitter帐户的唯一OAuthService名称),这种工作但它很笨重,因为每次脚本时我必须随机授权一个帐户(不超过一个帐户)运行,弹出对话框没有告诉我我正在验证哪个帐号(即id)。

理想情况下,我想强制每个用户在首次使用时授予Twitter权限,然后存储该令牌供以后使用 - 这可能是Google App脚本吗?

感谢。

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

1 个答案:

答案 0 :(得分:0)

是的,是可能的。 要存储令牌值,请使用userProperties(文档here)或缓存服务,在缓存中保留20分钟(文档here)。

使用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');

构建缓存解决方案后,您需要检查令牌是否对twitter API有效。如果它无效,您应该再次要求auth。