我编写了一个简单的谷歌脚本函数来获取关注者并将其保存在数据库中。接下来,我设置了触发器以在每天午夜运行该函数,但我收到错误消息,我必须授权才能运行该函数。
function get_followers() {
// Setup OAuthServiceConfig
var oAuthConfig = UrlFetchApp.addOAuthService("twitter");
oAuthConfig.setAccessTokenUrl("http://api.twitter.com/oauth/access_token");
oAuthConfig.setRequestTokenUrl("http://api.twitter.com/oauth/request_token");
oAuthConfig.setAuthorizationUrl("http://api.twitter.com/oauth/authorize");
oAuthConfig.setConsumerKey("xxxxxxxxxxxxxxxxxxxxxx");
oAuthConfig.setConsumerSecret("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
var options =
{
"oAuthServiceName" : "twitter",
"oAuthUseToken" : "always"
};
var result = UrlFetchApp.fetch("https://api.twitter.com/1.1/followers/ids.json?cursor=-1&screen_name=xxxxxxxxxxxxx&count=5000",options);
var dataAll = Utilities.jsonParse(result);
db_save(dataAll,'twitter_followers');
Logger.log(dataAll);
}
当我从 script.google.com 运行代码时,会出现 Twitter 授权弹出窗口并执行函数。而且当函数通过触发器运行时,它看起来像是第一次正确运行,而且我必须再次授权脚本。
如何永久授权?
我知道这是可能的,因为我已将 Drupal 与同一个 Twitter 帐户集成,而且我只需要授权一次?
有什么想法吗?我应该存储 oAuthConfig 变量以使其永久化吗?有什么提示吗?
最佳答案
似乎 Twitter 最近更新了推文中包含的接受字符。例如,如果您尝试发布单引号 ('
),您的推文将被 API 拒绝并且您的访问 token 将被撤销。因此,您每次都必须重新识别自己。
所以看看你推文中包含的符号,尝试把(
, )
和'
去掉调试一下,看看问题是不是来了从那开始。
更多信息here .
关于twitter - Google 脚本 oauth 身份验证每天都需要对 twitter 进行授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17437089/