2

我嘗試使用Twitter Stream Api來搜索Google Spreadsheet中的一些hashtags。 Twitter搜索API無用因爲我想trak轉推數也。我的功能在這裏示例。任何人都可以解釋我必須做什麼才能工作好。用法Twitter Stream api搜索

function miniSearch(){ 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sumSheet = ss.getSheetByName("Readme/Settings"); 
    // Authorize to Twitter 
    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(TWITTER_CONSUMER_KEY); 
    oauthConfig.setConsumerSecret(TWITTER_CONSUMER_SECRET); 
    // "twitter" value must match the argument to "addOAuthService" above. 
    var options = { 
    'method': 'POST', 
    "oAuthServiceName" : "twitter", 
    "oAuthUseToken" : "always" 
    }; 

    var url = "https://stream.twitter.com/1/statuses/filter.json?track="+"twitterapi"; 
    var response = UrlFetchApp.fetch(url, options); 
    var tweets = JSON.parse(response.getContentText()); 

    sumSheet.getRange('B8').setValue(tweets[0]["text"]); 



} 

這個函數返回錯誤碼504;

回答

0

我不認爲谷歌Apps腳本可以保持它導致504持久HTTP連接開放(見Twitter Streaming APIs Doc

[我有一個基本的轉推計數器this Google Spreadsheet Template (TAGS v4.0)。 filterUnique公式使用此代碼(僞代碼從tweet文本中去除任何鏈接,然後提取第一個90%的文本(以考慮任何舊式RT +註釋),然後如果不在唯一陣列中,則添加或添加1到現有值) :

function filterUnique(tweets){ 
    var output = []; 
    var temp = {}; 
    for (i in tweets){ 
    if (i>0){ 
     var tmp = tweets[i][0]; 
     var urlPattern = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; 
     tmp = tmp.replace(urlPattern,"") 
     tmp = tmp.substring(0,parseInt(tmp.length*0.9)); 
     if (temp[tmp] == undefined){ 
     temp[tmp] = [tweets[i][0],0]; 
     } 
     temp[tmp] = [tweets[i][0],temp[tmp][1]+1]; 
    } 
    } 
    for (i in temp){ 
    output.push([temp[i][0],temp[i][1]]); 
    } 
    output.sort(function(a,b) { 
    return b[1]-a[1]; 
    }); 
    return output.slice(0, 12); 
} 

]

+0

我認爲這將不適合我,因爲我必須尋找一些主題標籤,然後在成立鳴叫我必須跟蹤多少次轉推鳴叫每..和它是一個很大的連接並拋出API – 2012-07-15 11:44:27

+0

的限制你試圖做的事可能超出普通API訪問的凡人。你可能想開始尋找像datasift.com這樣的第三方服務,它可以在你訪問twitter數據時付費 – mhawksey 2012-07-15 11:59:13

+0

我認爲這不是專業任務。唯一的問題是我無法連接到任何類型的動作流API。 – 2012-07-15 12:26:32