· 7 years ago · Mar 04, 2018, 08:26 PM
1<?php
2 require_once("twitteroauth/twitteroauth.php"); // Path to twitteroauth library
3 require_once('config.php'); // Path to config file
4
5 // Check if keys are in place
6 if (CONSUMER_KEY === '' || CONSUMER_SECRET === '' || CONSUMER_KEY === 'RDWZCdLIkBouOSwFeM2337CzO' || CONSUMER_SECRET === 'vLaraev4X1FS1HcBAHn97kMfNQkUm9sVjUw0ck3882OFOO14p2') {
7 echo 'You need a consumer key and secret keys. Get one from <a href="https://dev.twitter.com/apps">dev.twitter.com/apps</a>';
8
9 exit;
10 }
11
12 // If count of tweets is not fall back to default setting
13 $username = filter_input(INPUT_GET, 'username', FILTER_SANITIZE_SPECIAL_CHARS);
14 $number = filter_input(INPUT_GET, 'count', FILTER_SANITIZE_NUMBER_INT);
15 $exclude_replies = filter_input(INPUT_GET, 'exclude_replies', FILTER_SANITIZE_SPECIAL_CHARS);
16 $list_slug = filter_input(INPUT_GET, 'list_slug', FILTER_SANITIZE_SPECIAL_CHARS);
17 $hashtag = filter_input(INPUT_GET, 'hashtag', FILTER_SANITIZE_SPECIAL_CHARS);
18
19 /**
20 * Gets connection with user Twitter account
21 * @param String $cons_key Consumer Key
22 * @param String $cons_secret Consumer Secret Key
23 * @param String $oauth_token Access Token
24 * @param String $oauth_secret Access Secrete Token
25 * @return Object Twitter Session
26 */
27 function getConnectionWithToken($cons_key, $cons_secret, $oauth_token, $oauth_secret)
28 {
29 $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_secret);
30
31 return $connection;
32 }
33
34 // Connect
35 $connection = getConnectionWithToken(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_SECRET);
36
37 // Get Tweets
38 if (!empty($list_slug)) {
39 $params = array(
40 'owner_screen_name' => $username,
41 'slug' => $list_slug,
42 'per_page' => $number
43 );
44
45 $url = '/lists/statuses';
46 } else if($hashtag) {
47 $params = array(
48 'count' => $number,
49 'q' => '#'.$hashtag
50 );
51
52 $url = '/search/tweets';
53 } else {
54 $params = array(
55 'count' => $number,
56 'exclude_replies' => $exclude_replies,
57 'screen_name' => $username
58 );
59
60 $url = '/statuses/user_timeline';
61 }
62
63 $tweets = $connection->get($url, $params);
64
65 // Return JSON Object
66 header('Content-Type: application/json');
67
68 echo json_encode($tweets);