从 Google Apps 脚本调用 Twitter API

Posted

技术标签:

【中文标题】从 Google Apps 脚本调用 Twitter API【英文标题】:Calling Twitter API from Google Apps Script 【发布时间】:2014-01-07 21:32:09 【问题描述】:

我正在尝试从 Google Apps 脚本调用 Twitter 的 REST API。 我正在使用的代码是从这里一对一复制的: https://developers.google.com/apps-script/guides/services/external

特别是:

function test() 
  var consumerKey = 'XXXX';     // Copied from my twitter app setting.
  var consumerSecret = 'XXXXX'; // Copied from my twitter app setting.
  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(consumerKey);
  oauthConfig.setConsumerSecret(consumerSecret);
  var options = 
      'oAuthServiceName' : 'twitter',
      'oAuthUseToken' : 'always'
  ;

  var url = 'https://api.twitter.com/1.1/search/tweets.json?count=5&include_entities=false&result_type=recent&q=hello';
  var response = UrlFetchApp.fetch(url, options);
  var tweets = JSON.parse(response.getContentText());
  Logger.log(tweets)  

尽管如此,我每次运行它时都会收到 Oauth ERROR。 我在 Twitter 应用中的设置允许“读写”

任何建议

【问题讨论】:

【参考方案1】:

只需转到您的 twitter 应用程序并将回调 url 设置为 https://script.google.com

【讨论】:

这可以转移到 jQuery 之类的东西上吗? 不明白你的问题。能详细解释一下吗? 更多的是调用外部库/API 的概念(jQuery 是一个不太可能工作的例子,因为 DOM 操作)。不要担心回答这个问题,因为我误解了你对原始问题的回答。 @braraujo 我们可以在 Twitter 请求本身中指定回调 URL 吗? Callback URL 下方的注释显示我们需要在 oAuth 1.0a 中明确指定 oauth_callback URL【参考方案2】:

现在最好通过以下开源 Google Apps 脚本库来处理:

https://github.com/googlesamples/apps-script-oauth1

文档中的示例是 twitter 本身(因为它可能是唯一剩下的 oauth v1 用户......)

干杯,M

【讨论】:

以上是关于从 Google Apps 脚本调用 Twitter API的主要内容,如果未能解决你的问题,请参考以下文章

Google Apps 脚本中两次调用(POST 和 GET)之间的延迟

如何使用google apps脚本在自定义函数中编辑自定义函数的调用单元格?

google Apps 脚本中的 createFile() 无法正常运行

Google Apps 脚本中的成功处理程序从服务器函数接收 null

如何调试Google Apps脚本(又名Logger.log登录到哪里?)

服务帐户可以调用 Google Apps Script Execution API 吗?