使用Google Script发推文

jth*_*h41 5 twitter oauth google-apps-script

我从这个问题中提取了这段代码.

应用作者的解决方案,我总是给出这个错误: 在此输入图像描述

我从我创建的Twitter应用程序中获取了我的密钥和秘密:

在此输入图像描述

我已将应用程序配置为编写...

我究竟做错了什么?

//post tweet
function oAuth() {
  var CONSUMER_KEY = "xxxx";
  var CONSUMER_SECRET = "xxxxx";
  ScriptProperties.setProperty("TWITTER_CONSUMER_KEY", CONSUMER_KEY);
  ScriptProperties.setProperty("TWITTER_CONSUMER_SECRET", CONSUMER_SECRET);
  var oauthConfig = UrlFetchApp.addOAuthService("twitter");
  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/authenticate");
  oauthConfig.setConsumerKey(ScriptProperties.getProperty("TWITTER_CONSUMER_KEY"));
  oauthConfig.setConsumerSecret(ScriptProperties.getProperty("TWITTER_CONSUMER_SECRET"));
  var options = {muteHttpExceptions: true,oAuthServiceName:'twitter',oAuthUseToken:'always'}
  var url = "https://api.twitter.com/1.1/statuses/user_timeline.json";
  var response = UrlFetchApp.fetch(url, options).getContentText();
  Logger.log(response);
}
function postTweet() {
  oAuth();
  Logger.log('oAuth complete');
  var status='Operational!';
  var options = {
    "method": "post",
    "oAuthServiceName": "twitter",
    "oAuthUseToken": "always",
    "payload":{"status":status}
  };
  var url = "https://api.twitter.com/1.1/statuses/update.json";
  Logger.log('begin post');
  var request = UrlFetchApp.fetch(url, options);
  Logger.log('post complete');
}
Run Code Online (Sandbox Code Playgroud)

HDC*_*rus 3

我也遇到了这个错误,直到我意识到你需要在 Twitter 中指定一个“回调 URL”:

Twitter 回调 URL

将其指定为“ https://script.google.com ”或“ https://script.google.com/macros ”即可允许我授权。我已经对此进行了测试,目前允许我使用您列出的代码进行发布。

但请注意,如果您尝试两次发布相同的“状态”文本,则会出现以下错误:

重复状态错误

这不是问题,因为您只需更改变量“状态”的值,但它第一次让我感到困惑。