首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Google脚本向我的feed发布一条推特

使用Google脚本向我的feed发布一条推特
EN

Stack Overflow用户
提问于 2014-08-30 00:38:46
回答 2查看 1.7K关注 0票数 3

正如标题所示,我在这里的目标是能够从script.gs发送一条推特。这条推特将被发布到我的推特上,理想的情况下,我不必访问Twitter网站。

我编写了两个主要函数来尝试这样做:

script.gs

代码语言:javascript
运行
复制
//post tweet
function oAuth() {
  var CONSUMER_KEY = "**********************";
  var CONSUMER_SECRET = "*************************************************";
  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/authorize");
  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 = "Tweet";
  var Roptions = {
    method: "post",
    oAuthServiceName: "twitter",
    oAuthUseToken: "always",
    status: status
  };
  var url = "https://api.twitter.com/1.1/statuses/update.json";
  Logger.log('begin post');
  var request = UrlFetchApp.fetch(url, Roptions); //the trouble line. Execution stops.
  Logger.log('post complete');
}

经过大约一天的无情黑客攻击,我能够获得第一个功能,oAuth()工作。这记录了我的用户数据。然而,对于我的生活,我不知道什么是阻碍request。我确实得到了一个错误:Request failed for returned code 403. Truncated server response: {"errors":[{"message":"SSL is required","code":92}]}。在谷歌上搜索的情况并不多见。我猜问题就在Roptions的某个地方。任何帮助都将不胜感激,如果需要的话,我可以提供进一步的澄清。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-30 05:24:55

尤里卡!这是解决办法。讽刺的是,我以前也有过这样的经历,但却对此置之不理。原来https是我最大的问题。今晚我将享用卑微的派。

发送tweet的脚本

代码语言:javascript
运行
复制
//post tweet
function oAuth() {
  var CONSUMER_KEY = "*************************";
  var CONSUMER_SECRET = "**************************************************";
  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='Test tweet';
  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');
}

当你注册你的推特应用程序,你必须检查选项Allow this application to be used to Sign in with Twitter。这样可以防止连续的授权弹出窗口。另外,tweet文本不能包含单引号(')。

票数 6
EN

Stack Overflow用户

发布于 2016-09-16 10:11:06

@J 148,oauthConfig降级了,你不能再使用它了;

现在,对于twitter,您必须使用OAuth1来编写应用程序脚本。迁移文档:medium=blog

样本:https://github.com/googlesamples/apps-script-oauth1/blob/master/samples/Twitter.gs

要使样本正常工作,您必须:

  • 在脚本项目中添加"OAuth1 for Apps脚本库“
  • 在twitter应用程序的设置中声明一些存根“回调URL”
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25577921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档