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

时间:2013-09-19 16:35:34

标签: javascript php twitter hashtag

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

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

这就是我所做的:#Dhoom3teaser

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

我想我可能会使用setInterval.But然后认为可以有更好的解决方案。

希望我很清楚?

<?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>';

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

您想要的属性是“id(唯一标识推文)。

修改一些进一步的想法: 如果我不得不用PHP做,我会尽可能使用cronjobs。要存储unique_id(以及tweet数据中所需的其他字段),您只需使用mysql表(并使用id作为主键)。如果你没有该领域的经验,那将是更难的,因为这是保存大量推文并避免重复的最简单方法。

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