matlab - 在 Twitter Premium Search API 中使用附加请求参数
问题描述
我正在使用Matlab中的Twitter API ,特别是通过Datafeed Toolboxtwitter
中的类。
我基本上遵循了官方文档中的示例代码。我在我的 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。这有两个用于访问推文的端点:
- 30 天端点:提供前 30 天的推文。
- 完整存档端点:提供对自 2006 年 3 月第一条推文的完整和即时访问。
此外,Premium API 有两层访问权限:
- 免费沙盒访问,支持初始测试和开发。
- 提供更多访问权限的付费高级访问权限。
与付费访问相比,上面的链接指定了与沙盒相关的限制。
我正在尝试使用具有沙盒访问权限的完整存档端点。为此,我必须在 Twitter 上创建一个开发人员环境,我将其命名为.dev
search
Matlab类中的方法twitter
(适用于标准访问,如上所述)似乎不适用于高级访问。但我注意到search
实际调用getdata
,后者确实适用于高级访问,如下所示。首先,需要定义 Premium 访问 URL:
c.URL = 'https://api.twitter.com/1.1/tweets/search/fullarchive/dev.json';
然后以下语法起作用:
s = getdata(c,c.URL,'query','Jimi Hendrix'); % this works
我还能够在查询字符串中添加运算符,例如指定地理位置范围或将搜索限制为包含图像的推文:
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 中定义的其他请求参数fromDate
来优化搜索,例如toDate
或maxResults
:
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
etc 参数必须是查询字符串的一部分?或者高级搜索的沙盒层可能不支持这些参数?
解决方案
按照https://developer.twitter.com/en/docs/tweets/search/api-reference/premium-search#DataParameters上的描述,您所谓的“添加请求参数”是为 type 的请求定义的POST /search/:product
。这些是HTTP POST
请求,您可以尝试使用postdata
( https://in.mathworks.com/help/datafeed/twitter.postdata.html ) 而不是getdata
. 它们的用法几乎相同。
推荐阅读
- c++ - 无法编译 std::reduce 调用,而 std::accumulate 调用编译相同的参数
- android - FIREBASE - 从 Play 商店更新后删除和创建的实时数据库记录
- c++ - 获取正在运行的进程的pid
- jquery - 按钮未禁用且文本值在单击后不会更改
- node.js - 如何在 package.json 脚本之间传递参数
- python - 如何在 Visual Studio (2017) 中禁用 Python 的错误曲线
- javascript - axios回调中的Vue实时更新props数组
- php - PHP/SQL - 注册页面中的提示立即出现,无需输入任何内容
- c - 在C中删除链表的第一个元素
- c++ - 为什么它无法识别我的子类中的矢量数据?它被宣布为受保护,所以我很困惑