简介

 

Twitter API 为开发者提供了一种方法来访问关于全球动态的数据。开发者可以使用我们的 API 侦听感兴趣的事件,并构建可根据这些事件触发操作的应用程序。例如,你可能希望侦听特定用户账号中含有某些词语(突发新闻)的推文,然后在这些账号发布带有这些关键词的推文时收到短信通知。

 

利用筛选流端点和采样流端点,在重要事件发生时,你便可以从公开推文中侦听这些事件。筛选流端点将返回与你设置的标准相符的一系列特定推文,而采样流端点将实时返回约占全部公开推文 1% 的随机样本。因此,使用筛选流端点,可以预定义要查找的推文的标准。至于采样流端点,你可以先使用 1% 的随机样本,然后从响应中确定自己感兴趣的推文。获得关于这些事件的推文后,便可以基于这些事件触发适当的操作或通知。

 

在本指南中,你将学习如何:

  • 确定你想侦听的推文类型

  • 验证并连接到适当的端点,以接收推文

  • 根据侦听的感兴趣的推文触发操作或通知

 

前提条件

 

 

需要考虑的步骤

 

确定你想侦听的推文类型

 

首先,必须确定你想侦听的事件类型。为此,应考虑一些基本问题,例如:

  • 是否要基于特定话题标签或关键词查找推文?

  • 是否要包含/排除转推的推文?

  • 是否在专门查找含有媒体文件的推文?

  • 是否要查找使用特定语言的推文?

 

清楚这其中某些问题的答案后,便可以使用以下方法来获取所需数据:

 

  1. 利用采样流端点,你可以从 Twitter 上发生的所有动态中提取 1% 的样本进行侦听。连接到该流之后,便可以在此推文流中确定热门话题的趋势。然后,你可以将通知发送到所选渠道。
  2. 利用筛选流,你可以明确创建搜索查询并定义要查找的数据。例如,可以指定查找所有带话题标签 #Caturday 的推文,并只筛选出包含图像的推文。当你开始收到符合这一标准的推文后,就可通过电子邮件、短信等方式发送这些推文的链接。

 

验证并连接到适当的端点,以接收推文

 

身份验证

 

要开始从采样流端点或筛选流端点接收数据,你需要进行验证。为此,请将以下 cURL 调用中的 $BEARER_TOKEN(包括 $ 符号)替换为开发者门户网站中应用的不记名令牌

 

及时了解感兴趣的话题

 

为及时了解感兴趣的特定话题,可以使用筛选流端点。你可以为筛选流端点添加规则,以指定要查找的数据。为此,必须对筛选流的创建规则端点进行 POST 调用。创建规则的 cURL 调用示例如下(请使用自己的术语和运算符替换 $REPLACE_WITH_RULE):

 

      curl -X POST 'https://api.twitter.com/2/tweets/search/stream/rules' \
-H "Content-type: application/json" \
-H "Authorization: Bearer $BEARER_TOKEN" -d \
'{
  "add": [
    {"value": "from:twitterdev from:twitterapi has:links"}
  ]
}'
    

 

例如,如果要获取所有关于话题标签“#Caturday”的带图像的推文(转推除外),规则将如下所示:

 

“#caturday has:images -is:retweet”

 

你可以在此处找到有关可用运算符和构建规则的详细信息。

 

添加规则后,便可以连接到筛选流端点,开始将数据流式传输到客户端。下面的示例展示了如何使用 cURL 来实现此目的:

 

      curl -X GET -H "Authorization: Bearer $BEARER_TOKEN" "https://api.twitter.com/2/tweets/search/stream"
    

 

你也可以使用我们的某个代码示例连接到筛选流端点

 

 

成功建立与流的连接后,你将收到通过持久性 HTTP 流连接以 JSON 格式传送的推文。你只会在连接到流时收到与先前定义的规则匹配的推文。如果当前没有匹配的推文,你将每 20 秒收到一次回车换行符,以防应用超时。

 

检测当前趋势

 

为了解特定时间的热门话题,可以使用采样流 API。要连接到采样流 API,请向端点发出 GET 请求。下面的示例展示了如何使用 cURL 来实现此目的。 

 

      curl -X GET -H "Authorization: Bearer $BEARER_TOKEN" "https://api.twitter.com/2/tweets/stream/sample"
    

你也可以使用我们的某个代码示例连接到采样流端点

 

 

连接后,推文一发布,你就会不断收到它们。在端点上收到推文时,你可以采用编程方式扫描键值对存储区或其他数据存储区中的话题标签、用户提及、关键词和注释,并计算重复出现的数量。

 

根据侦听的感兴趣的推文触发操作或通知

 

收到感兴趣的推文后,便可以决定下一步该如何处理这些推文。建议使用特定渠道(例如发送电子邮件、发送短信或向通讯应用发送通知等)发送感兴趣的推文链接。

 

发送含推文数据的电子邮件

 

要以编程方式将推文链接发送到电子邮件中,需要使用电子邮件服务。这类服务的一些例子包括 SendGrid 电子邮件 APIAWS Simple Email Service (SES) 等。这些服务一般都提供一些 SDK,让你能够轻松入门。它们通常要求你验证电子邮件地址(收件人和发件人),你可以在正文中传递推文的 URL。

 

发送含推文数据的短信

 

你的使用案例可能需要使用短信发送推文链接。可让你以编程方式发送短信的一些服务包括 TwilioAWS Simple Notification Service (SNS) 等。这些服务也提供一些 SDK,让你可在代码中使用,从而实现轻松入门。Twilio 提供了一个电话号码,你可以通过该号码发送短信,并将推文的 URL 用作短信正文。

 

向通讯工具发送通知

 

建议向你可能正在使用的通讯工具发送推文链接。SlackDiscord 等通讯工具都提供 API,可让你将消息发送到这些应用的渠道中。请务必先在这些通讯工具上创建一个应用,然后再获取 Webhook URL,向应用发送消息。创建好应用(以及 Webhook 等)之后,就可以将“推文”的链接发送到所选渠道。

 

注意:对于你的使用案例,如果不想在事件发生时立即收到通知,那么还可以使用近期搜索端点,定期调用即可。然后,从该端点获得数据后,便可以决定如何将通知发送到正确的渠道。 

 

如需查看如何构建使用筛选流端点侦听突发新闻并通过 Slack 或短信发送通知的服务示例,请参阅本教程。此应用不需要任何自定义编码,并且可以部署到 AWS。

 

后续步骤