定期获取带有特定主题标签的推文


get tweets with certain hashtag at regular intervals?

我已经成功提取了属于某个标签的推文。

对于对代码感兴趣的人,它在底部。

这就是我所做的:#Dhoom3teaser

但出于某些原因,我需要将每条推文插入我的表格。我如何定期插入某些内容而不重复。(即推文应根据其时间戳插入)。如何区分推文?

我想可能是我会使用 setInterval.但后来认为可能有更好的解决方案。

希望我清楚吗?

<?php
ini_set('display_errors', 1);
require_once('TwitterAPIExchange.php');
include_once $_SERVER["DOCUMENT_ROOT"]."/includes/db/db_conn.php";
$settings = array(
    'oauth_access_token' => "",
    'oauth_access_token_secret' => "",
    'consumer_key' => "",
    'consumer_secret' => ""
);
$url = 'https://api.twitter.com/1.1/search/tweets.json';
$getfield = '?q=#Dhoom3Teaser';
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
$response = $twitter->setGetfield($getfield)
    ->buildOauth($url, $requestMethod)
    ->performRequest();
$decoded = json_decode($response);
echo '<pre>';print_r($decoded);echo '<pre>';

你想要一个cron工作。这是一篇关于如何设置它的文章:http://www.thesitewizard.com/general/set-cron-job.shtml

什么是 cron 作业,只是按计划运行脚本的标准方式。因此,每天一次,或每小时一次,或每月第三个星期六的2:15,等等。你将编写 cron 作业,以便它将运行你的推文抓取脚本,然后为了确保没有重复的推文,你将在插入新推文之前检查表中是否有重复项。我确定(但可能是错误的)每条推文都有某种推文 ID,因此在插入之前,请确保表中不存在具有该 id 的推文。

编辑:实际上,最好制作表格,以便每一行的ID都是唯一的。你不必以这种方式编写任何额外的 php。

看这里:https://dev.twitter.com/docs/platform-objects/tweets

所需的属性是"id(唯一标识推文)。

编辑一些进一步的想法:如果我必须在PHP中执行此操作,如果可能的话,我会使用cronjobs。为了存储unique_id(以及推文数据中所需的其他字段),你可以只使用 mysql 表(并使用 id 作为主键)。如果你没有该领域的经验,那就更难了,因为这是保存大量推文和避免重复的最简单方法。

对于搜索 api 部分:有一个参数"since_id"基本上是一个大于过滤器。因此,如果您保存了上次检索到的推文,则可以使用它继续搜索并检索比上次保存的推文更新的推文(因此无论如何都不应该有任何重复)。