Twitter API态度运算符不起作用

时间:2014-12-26 22:10:06

标签: node.js twitter

我一直在使用Twitters搜索API(通过node-twitter模块),我遇到了与姿态运算符有关的问题。我希望得到关于某个主题的正面和负面推文。目前虽然他们返回相同的结果。这是我调用API的代码。

// Add since ID for future requests
twitterSearchClient.search(
    {'q'          :'xmas+%3A%28',
     'lang'       : 'en',
     'count'      : 100,
     'result_type': 'recent'},
    function(error, result) {
        if (error) {
            console.log('Error: ' + (error.code ? error.code + ' ' + error.message : error.message));
        }

        if (result) {
            var requestDetails = result.search_metadata;
            var results = result.statuses;
            var resultsLength = results.length;
            var r;
            var data;
            var d;

            console.log(resultsLength);

            for (var i=0; i<resultsLength; i++) {

               console.log(r.text);
            }   
        }
    }
);

正如您所看到的,我正在使用完全urlencoded值,如文档中的示例。我也尝试使用圣诞节+%3A)为正面和圣诞节+%3A(对于否定,但由于某种原因,这会返回401未经授权的错误。

是否有人遇到此问题或有解决方案。

如果您将来有任何问题,我将很乐意回答他们

提前致谢。

2 个答案:

答案 0 :(得分:1)

根据推特的文档

  

请在发出请求之前确保URL encode这些查询

当转到该网址并输入您的搜索xmas :)时,我收到了此查询

https://twitter.com/search?q=xmas%20%3A)

您可以看到xmas :) = xmas%20%3A)xmas :(最终成为

https://twitter.com/search?q=xmas%20%3A(

xmas :( = xmas%20%3A(

如果您仍然没有得到不同的结果(您可以将结果与在上面的链接上进行搜索时得到的结果进行比较)那么它不是查询,而是您可能如何进行调用。如果是这种情况,将需要其他信息。

答案 1 :(得分:1)

在这种情况下,您是否尝试过不编码查询?客户可能会代表您对其进行编码。

...
'q': 'xmas :(',
...

注意:您没有提及或链接到您正在使用的Twitter客户端(via npm?)。


我不能代表您的具体问题,当我通过网站上的表单搜索时,我会得到不同的结果,并且查询是URI编码的......当您将输入传递给远程查询字符串时,我建议您使用encodeURIComponent('xmas :)')作为输入值,这将产生最可预测的结果。