twitter - Google 脚本 oauth 身份验证每天都需要对 twitter 进行授权

标签 twitter oauth google-apps-script

我编写了一个简单的谷歌脚本函数来获取关注者并将其保存在数据库中。接下来,我设置了触发器以在每天午夜运行该函数,但我收到错误消息,我必须授权才能运行该函数。

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/

相关文章:

javascript - onOpen 不适用于 Google 脚本

asp.net - 编写我自己的自定义 OAuth 外部登录提供程序

java - 为什么通过/oauth/token生成token的方法从GET变成了POST?

php - 如何正确保存和显示表情符号推文,如\udc3b

php - <b> fatal error </b> : Uncaught exception 'Exception' with message 'Failed to connect to api.twitter.com port 443: Connection timed out'

c# - OAuth。推特。 StatusCode : 403. 需要 SSL。 C#

login - 如何使用 Google Apps 脚本登录外部网站?

javascript - 如何使用 Google Apps 脚本通过 USPS API 获取国内运费?

python - Twitter 不再使用请求库 python

javascript - 动态替换/重新渲染 Twitter 搜索源