Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用twitter流API_Php_Api_Twitter_Stream - Fatal编程技术网

Php 使用twitter流API

Php 使用twitter流API,php,api,twitter,stream,Php,Api,Twitter,Stream,我需要使用实时tweets示例。我有这段代码,但我找不到任何正确的链接。我确实输入了正确的用户名和密码,但仍然没有通过。请注意,这是因为twitter最近更改了API。对不起,如果问题是基本的,我是新来的。提前谢谢 <?php //datacollector.php $fp = fopen("http://username:pass@stream.twitter.com/spritzer.json while($data = fgets($fp)) { $time = date("

我需要使用实时tweets示例。我有这段代码,但我找不到任何正确的链接。我确实输入了正确的用户名和密码,但仍然没有通过。请注意,这是因为twitter最近更改了API。对不起,如果问题是基本的,我是新来的。提前谢谢

<?php
//datacollector.php
$fp =
fopen("http://username:pass@stream.twitter.com/spritzer.json
while($data = fgets($fp))
{
    $time = date("YmdH");
    if ($newTime!=$time)
    {
        @fclose($fp2);
        $fp2 = fopen("{$time}.txt","a");
    }
    fputs($fp2,$data);
    $newTime = $time;
}
?>

流式API文档表明,为了访问用户流,您需要使用OAuth进行验证。见:


该页面还表明基本身份验证将被弃用,因此我认为您需要调整代码以使用OAuth。

流式API文档表明,为了访问用户流,您需要使用OAuth进行验证。见:


该页面还表明基本身份验证将被弃用,因此我认为您需要调整代码以使用OAuth。

DWRoelands发布的关于弃用的内容是正确的,但这实际上不是您的问题——问题在于Twitter。您应该改为使用
/1/statuses/sample.json
获取消防软管。下面是一个有效的命令行示例:

curl http://stream.twitter.com/1/statuses/sample.json -uusername:password
如果你想在生产中使用这个代码很长时间,我当然会考虑实施OAuth.但是由于推特还没有公布一个关闭基本AUTH的时间表,如果你只是在闲逛,那就不必太匆忙了。当然,他们明天可以在没有任何警告的情况下关掉它

下面是一些可用的PHP代码,只需将username:password替换为实际凭据:

<?php
//datacollector.php
$fp = fopen("http://username:password@stream.twitter.com/1/statuses/sample.json", "r");
while($data = fgets($fp)) {
    $time = date("YmdH");
    if ($newTime!=$time) {
        @fclose($fp2);
        $fp2 = fopen("{$time}.txt","a");
    }
    fputs($fp2,$data);
    $newTime = $time;
}
?>

DWRoelands所发布的关于弃用的内容是正确的,但这实际上不是你的问题——问题在于Twitter。您应该改为使用
/1/statuses/sample.json
获取消防软管。下面是一个有效的命令行示例:

curl http://stream.twitter.com/1/statuses/sample.json -uusername:password
如果你想在生产中使用这个代码很长时间,我当然会考虑实施OAuth.但是由于推特还没有公布一个关闭基本AUTH的时间表,如果你只是在闲逛,那就不必太匆忙了。当然,他们明天可以在没有任何警告的情况下关掉它

下面是一些可用的PHP代码,只需将username:password替换为实际凭据:

<?php
//datacollector.php
$fp = fopen("http://username:password@stream.twitter.com/1/statuses/sample.json", "r");
while($data = fgets($fp)) {
    $time = date("YmdH");
    if ($newTime!=$time) {
        @fclose($fp2);
        $fp2 = fopen("{$time}.txt","a");
    }
    fputs($fp2,$data);
    $newTime = $time;
}
?>

如果您需要一个应用程序,您可以使用C语言轻松开发

API提供了一个类流,允许您使用委托函数检索流的信息

以下是示例提供的示例:

private static void streaming_example(Token token)
    {
        // Creating a Delegate to use processTweet function to analyze each Tweet coming from the stream
        Stream.ProcessTweetDelegate produceTweetDelegate = new Stream.ProcessTweetDelegate(processTweet);
        // Creating the stream and specifying the delegate
        Stream myStream = new Stream(produceTweetDelegate);
        // Starting the stream by specifying credentials thanks to the Token
        myStream.StartStream(token);
    }
易于快速实现


我是这个项目的开发人员之一。

如果你需要一个应用程序,你可以使用C语言轻松开发

API提供了一个类流,允许您使用委托函数检索流的信息

以下是示例提供的示例:

private static void streaming_example(Token token)
    {
        // Creating a Delegate to use processTweet function to analyze each Tweet coming from the stream
        Stream.ProcessTweetDelegate produceTweetDelegate = new Stream.ProcessTweetDelegate(processTweet);
        // Creating the stream and specifying the delegate
        Stream myStream = new Stream(produceTweetDelegate);
        // Starting the stream by specifying credentials thanks to the Token
        myStream.StartStream(token);
    }
易于快速实现

我是该项目的开发人员之一。

从下载lib文件夹。将它们与下面的代码放在同一文件夹中。修改Api键并更改要跟踪的关键字。如果要在浏览器中执行,请稍等

 <?php
   /***************libraries*********************/
    require_once('../lib/Phirehose.php');
    require_once('../lib/OauthPhirehose.php');
   /*********Escape from Execution Time***********/
   set_time_limit(0);
    class FilterTrackConsumer extends OauthPhirehose
    {
      public function enqueueStatus($status)
      {
        $data = json_decode($status, true);

        if (is_array($data) && isset($data['user']['screen_name'])) {
          print $data['text'];
        }
      }
    }
 /*************************API KEYS*******************************/
    define('TWITTER_CONSUMER_KEY', 'api_key');
    define('TWITTER_CONSUMER_SECRET','api_secret');


    define('OAUTH_TOKEN','token');
    define('OAUTH_SECRET','token secret');?>

    // Start streaming
    $sc = new FilterTrackConsumer(OAUTH_TOKEN, OAUTH_SECRET, Phirehose::METHOD_FILTER);
    $sc->setTrack(array('#keyword'));
    $sc->consume();
  ?>

//开始流媒体
$sc=新的FilterTrackConsumer(OAUTH_令牌、OAUTH_秘密、Phirehose::方法_过滤器);
$sc->setTrack(数组(“#关键字”);
$sc->consume();
?>
从下载lib文件夹。将它们与下面的代码放在同一文件夹中。修改Api键并更改要跟踪的关键字。如果要在浏览器中执行,请稍等

 <?php
   /***************libraries*********************/
    require_once('../lib/Phirehose.php');
    require_once('../lib/OauthPhirehose.php');
   /*********Escape from Execution Time***********/
   set_time_limit(0);
    class FilterTrackConsumer extends OauthPhirehose
    {
      public function enqueueStatus($status)
      {
        $data = json_decode($status, true);

        if (is_array($data) && isset($data['user']['screen_name'])) {
          print $data['text'];
        }
      }
    }
 /*************************API KEYS*******************************/
    define('TWITTER_CONSUMER_KEY', 'api_key');
    define('TWITTER_CONSUMER_SECRET','api_secret');


    define('OAUTH_TOKEN','token');
    define('OAUTH_SECRET','token secret');?>

    // Start streaming
    $sc = new FilterTrackConsumer(OAUTH_TOKEN, OAUTH_SECRET, Phirehose::METHOD_FILTER);
    $sc->setTrack(array('#keyword'));
    $sc->consume();
  ?>

//开始流媒体
$sc=新的FilterTrackConsumer(OAUTH_令牌、OAUTH_秘密、Phirehose::方法_过滤器);
$sc->setTrack(数组(“#关键字”);
$sc->consume();
?>

它非常有用。你能告诉我如何在php脚本中使用它吗。如何使用tweet并解析json行。我试图调用此链接,而不是在上面的脚本中调用的链接,但它不起作用。提前谢谢。我的计划是使用它一段时间,然后切换到OAuth,所以现在不需要处理OAuth部分。谢谢你,我从来没有一起使用过PHP和Twitter,但谷歌建议phirehose可以做到这一点:它非常有用。你能告诉我如何在php脚本中使用它吗。如何使用tweet并解析json行。我试图调用此链接,而不是在上面的脚本中调用的链接,但它不起作用。提前谢谢。我的计划是使用它一段时间,然后切换到OAuth,所以现在不需要处理OAuth部分。提前感谢我从未一起使用过PHP和Twitter,但谷歌建议phirehose可以做到这一点:我花了几天时间克服twitter实时api的所有问题,最后我开发了自己的解决方案。下面是GitHub上的项目,详细解释了如何设置基础项目,我花了几天时间克服了twitter实时api的所有问题twitter实时api,最后我开发了自己的解决方案