PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Wednesday, August 31, 2022

[FIXED] How to perform a search query using Services_Twitter?

 August 31, 2022     api, pear, php, service, twitter     No comments   

Issue

I am trying to perform a Twitter search using the PEAR package Services_Twitter. Unfortunately this only returns an array of status ids, for example (var_dump):

object(stdClass)#88 (2) {
  ["statuses"]=>
  array(11) {
    [0]=>
    int(49497593539)
    [1]=>
    int(49497593851)
    [2]=>
    int(49497598001)
    [3]=>
    int(49497599055)
    [4]=>
    int(49497599597)
    [5]=>
    int(49497600733)
    [6]=>
    int(49497602607)
    [7]=>
    int(49497607031)
    [8]=>
    int(49497607453)
    [9]=>
    int(49497609577)
    [10]=>
    int(49497610605)
  }
  ["created_in"]=>
  float(0.008847)
}

The script I'm using is similar to this test script I wrote:

<?php
//$oAuth = new HTTP_OAuth_Consumer( /** Supply oAuth details here **/ );
$Twitter = new Services_Twitter();
//$Twitter->setOAuth($oAuth);
try {
    $Response = $Twitter->search(array(
      "q"   => "#FF -RT OR #FollowFriday -RT",
      "rpp" => 10,
      "since_id"  => 23982086000,
      "result_type" => "recent"
    ));
    var_dump($Response);
  } catch (Exception $e) {
    fwrite(STDERR, $e->getMessage());
  }
?>

Since I want to scan the tweets for certain words and want to know when it was posted and by whom, I would need to request all these statuses one by one. But according to the example response in the Twitter API documentation they already return all the necessary information about the tweets (which is kinda obvious).

So, the question is: How can I access this information using Services_Twitter?

Kind Regards,

Arno


Solution

So as I said ->search() is wrapped through Services_Twitter::__call().

But here's the mis-understanding!

Two searches:

  • http://api.twitter.com/1/search.json?q=@noradio
  • http://search.twitter.com/search.json?q=@noradio

This is confusing as search.twitter.com returns the results as you'd expect them and the other API method just the status IDs.

For some reason only when you search for trends search.twitter.com is used. Otherwise it's the API methods. If you want to help, please open a ticket on PEAR and I can try to implement this for you.

A quickfix for you is this script:

<?php
$uri  = 'http://search.twitter.com/search.json?';
$uri .= http_build_query(
    array(
        "q"           => "#FF -RT OR #FollowFriday -RT",
        "rpp"         => 10,
        "since_id"    => 23982086000,
        "result_type" => "recent"
));

$response = file_get_contents($uri);
if ($response === false) {
    fwrite(STDERR, "Could not fetch search result.");
    exit(1);
}

$data = json_decode($response);
var_dump($data);


Answered By - Till
Answer Checked By - Katrina (PHPFixing Volunteer)
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing