2014-09-22 25 views
5

我從this question中提取此代碼。使用Google腳本的鳴叫

運用筆者的解決方案,我一直在給這個錯誤:enter image description here

我得到我的鑰匙和祕密從我創建Twitter的應用程序在這裏:

enter image description here

我已經應用程序配置爲寫入...

我在做什麼錯?

//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'); 
} 

回答

3

我得到這個錯誤還,直到我意識到你需要指定在Twitter上「回調URL」:

Twitter CallBack URL

指定,由於是「https://script.google.com」或「https://script.google.com/macros」是允許我授權。我已經測試了這一點,它現在讓我發佈你已經列出的代碼。

一注但是如果你嘗試發佈相同的「狀態」文本兩次,它會拋出你出現以下錯誤:

Duplicate Status Error

這並不像你只需改變的價值問題變量'狀態',但它第一次拋出我。