我已经成功提取了属于某个标签的推文。
对于对代码感兴趣的人,它位于底部。
这就是我所做的:#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>';
答案 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”基本上大于过滤器。因此,如果您保存了上次检索到的推文,则可以使用它来继续搜索并检索比最后保存的推文更新的推文(因此不应该有任何重复)。