我正在尝试使用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);
}
答案 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。