在Twitter Premium Search API中使用其他请求参数

时间:2019-09-12 21:41:13

标签: matlab rest twitter

我正在使用Matlab的Twitter API,特别是通过twitterDatafeed Toolbox类。

我基本上遵循官方文档中的example code。我在Twitter开发人员页面上创建了一个Twitter应用程序,并获取了它的API密钥和访问令牌。通过这些,我可以使用Matlab的Twitter 标准搜索 API:

c = twitter(consumerkey,consumersecret,accesstoken,accesstokensecret);
% The variables 'consumerkey' etc are defined as character vectors
s = search(c,tweetquery,'count',100); % this works

现在,我想使用高级搜索 API。 two endpoints用于访问推文:

  
      
  • 30天端点:提供前30天的推文。
  •   
  • 完全存档端点:提供对Tweets的完整和即时访问,该访问可追溯到2006年3月的第一条Tweet。
  •   

此外,Premium API具有two tiers的访问权限:

  
      
  • 免费沙箱访问权限,可进行初始测试和开发。
  •   
  • 付费高级版访问权限,可提供更多访问权限。
  •   

上面的链接指定了与付费访问相比与沙盒相关的限制。

我正在尝试使用具有沙盒访问权限的完全存档端点。为此,我必须在Twitter上创建一个dev的{​​{3}}。

Matlab的search类中的twitter方法(如上所述,适用于Standard访问)不适用于Premium访问。但是我注意到search实际上调用了getdata,后者确实适用于高级访问,如下所示。首先,需要定义高级访问URL:

c.URL = 'https://api.twitter.com/1.1/tweets/search/fullarchive/dev.json';

,然后使用以下语法:

s = getdata(c,c.URL,'query','Jimi Hendrix'); % this works

我还能够在查询字符串中添加developer environment,例如,指定地理位置范围或将搜索限制为包含图像的推文:

s = getdata(c,c.URL,'query','place:"Palo Alto"'); % this works
s = getdata(c,c.URL,'query','Robert Smith bounding_box:[-0.2 51.4 0.1 51.6]') % this works

但是-并且这是我的问题-”,我无法使用Twitter API中定义的其他operators来完善搜索,例如fromDatetoDatemaxResults

s = getdata(c,c.URL,'query','John Frusciante', 'fromDate', '201708130000') % doesn't work
s = getdata(c,c.URL,'query','Rob Scallon', ...
    'fromDate', '201708130000', 'toDate', '201708150000') % doesn't work
s = getdata(c,c.URL,'query','Michael Lemmo', 'maxResults', '20') % doesn't work

以上所有内容均返回HTTP/1.1 422 Unprocessable Entity错误。

我的语法不正确吗?也许fromDate等参数必须是查询字符串的一部分?还是Premium搜索的沙盒层不支持这些参数?


对于上下文,我request parameters {em>端点,开发人员环境令牌的意思是,但我仍然想don't really know

1 个答案:

答案 0 :(得分:2)

根据https://developer.twitter.com/en/docs/tweets/search/api-reference/premium-search#DataParameters的描述,为类型POST /search/:product的请求定义了所谓的“添加请求参数”。这些是HTTP POST个请求,您可以尝试使用postdatahttps://in.mathworks.com/help/datafeed/twitter.postdata.html)而不是getdata吗?它们的用法几乎相同。