【发布时间】:2016-09-16 18:11:06
【问题描述】:
正如标题所示,我的目标是能够从script.gs 发送推文。这条推文将被发布到我的订阅源中,理想情况下,我无需访问 Twitter 网站。
我写了两个主要函数来尝试这个:
script.gs
//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 的某个地方。任何帮助将不胜感激,如果需要,我可以尝试提供进一步的说明。
【问题讨论】:
-
SSL 是 HTTPS 的同义词。您的
url变量使用 HTTP 而不是 HTTPS。我会尝试将其作为最简单的第一步。var url = "https://api.twitter.etc -
Twitter API 文档使用 HTTPS。 Tweet API
-
facepalm 因为缺少 https。但是,我现在收到错误
Request failed for returned code 403. Truncated server response: {"errors":[{"code":170,"message":"Missing required parameter: status."}]}。但我在Roptions中有status??
标签: twitter google-apps-script twitter-oauth