Twitter timeline doet het niet meer...

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marco Hendriks

Marco Hendriks

18/10/2012 14:25:59
Quote Anchor link
Ik maak nu al een aantal weken gebruik van dit script:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?
    $username
= "scriptieIOT02";
    $limit = 10;
    $feed = 'http://twitter.com/statuses/user_timeline.rss?screen_name='.$username.'&count='.$limit;
    $tweets = file_get_contents($feed);
    
    $tweets = str_replace("&", "&", $tweets);    
    $tweets = str_replace("<", "<", $tweets);
    $tweets = str_replace(">", ">", $tweets);
    $tweet = explode("<item>", $tweets);
    $tcount = count($tweet) - 1;

for ($i = 1; $i <= $tcount; $i++) {
        $endtweet = explode("</item>", $tweet[$i]);
        $title = explode("<title>", $endtweet[0]);
           $content = explode("</title>", $title[1]);
        $content[0] = str_replace("&#8211;", "&mdash;", $content[0]);
    
        $content[0] = preg_replace("/(http:\/\/|(www\.))(([^\s<]{4,68})[^\s<]*)/", '<a href="http://$2$3" target="_blank">$1$2$4</a>', $content[0]);
        $content[0] = str_replace("$username: ", "", $content[0]);
        $content[0] = preg_replace("/@(\w+)/", "<a href=\"http://www.twitter.com/\\1\" target=\"_blank\">@\\1</a>", $content[0]);
        $content[0] = preg_replace("/#(\w+)/", "<a href=\"http://search.twitter.com/search?q=\\1\" target=\"_blank\">#\\1</a>", $content[0]);
        $mytweets[] = $content[0];
}


while (list(, $v) = each($mytweets)) {
    $tweetout .= "<div>$v<br/></div>\n";
}

?>


Deze zorgt ervoor dat ik de tweets van mijn timeline in mijn scriptie ontwerp te zien krijg alleen sinds vorige week doet die het opeens niet meer. Ik dacht eerst dat ik misschien een limit overschreden had maar het duurt nu al meer dan een week en doet het nog niet. En op anderen accounts doet deze het ook niet meer zou de API een update gehad hebben ofzo? Maar hoe dan ook weet iemand een manier om dit wel werkend te krijgen? Dit is de error die ik krijg (dacht dat het betekende dat hij gewoon geen data binnen kijgt).


Warning: file_get_contents(http://twitter.com/statuses/user_timeline.rss?screen_name=scriptieIOT02&count=10) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in /Applications/XAMPP/xamppfiles/htdocs/Scriptie/twitterfeed2.php on line 5

Warning: Variable passed to each() is not an array or object in /Applications/XAMPP/xamppfiles/htdocs/Scriptie/twitterfeed2.php on line 26
 
PHP hulp

PHP hulp

21/11/2024 14:08:28
 
Kris Peeters

Kris Peeters

18/10/2012 14:34:27
Quote Anchor link
Wat die tweede warning betreft ...
Zet op lijn 12 het volgende:

$mytweets = array();

Sowieso is dat altijd een goed idee wanneer je een array vult met $array[] = ...
maar ja ... daar gaat de vraag niet echt over.
 
Marvin H

Marvin H

18/10/2012 14:38:55
Quote Anchor link
Je link die je probeert te openen klopt niet... http://twitter.com/statuses/user_timeline.rss?screen_name=scriptieIOT02&count=10

deze geeft een error als je hem in je browser opent...

Toevoeging op 18/10/2012 14:43:12:

Probeer eens: http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=scriptieIOT02&count=10

Je $feed wordt dan dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$feed
= 'http://api.twitter.com/1/statuses/user_timeline.rss?screen_name='.$username.'&count='.$limit;
?>
Gewijzigd op 18/10/2012 14:44:09 door Marvin H
 
Marco Hendriks

Marco Hendriks

18/10/2012 15:03:07
Quote Anchor link
Dank je wel dat was de oplossing ik snap er alleen niks van want hij heeft het altijd perfect gedaan maar nogmaals bedankt nu kan ik het project eindelijk af maken :D
 
Marvin H

Marvin H

18/10/2012 15:07:41
Quote Anchor link
Marco Hendriks op 18/10/2012 15:03:07:
Dank je wel dat was de oplossing ik snap er alleen niks van want hij heeft het altijd perfect gedaan maar nogmaals bedankt nu kan ik het project eindelijk af maken :D


Twitter heeft de URL aangepast voor de RSS feed :)
 
Marco Hendriks

Marco Hendriks

18/10/2012 15:10:29
Quote Anchor link
ohw dus toch een update .... Nogmaals bedankt.
 
Anja van Steenbrugge

Anja van Steenbrugge

30/10/2012 12:46:44
Quote Anchor link
Kamp ik soms met deze zelfde probleem ik ook feed rss url moet aanpassen?
Warning: Invalid argument supplied for foreach() in /home/cooltennis/domains/cooltennis.nl/public_html/twitter.php on line 58

http://cooltennis.nl/twitter.php
Afbeelding
Gewijzigd op 30/10/2012 12:47:06 door Anja van Steenbrugge
 
- Ariën  -
Beheerder

- Ariën -

30/10/2012 12:50:00
Quote Anchor link
Vreemd script....
Waarom zou je zelf een RSS-feed moeten uitpluizen terwijl SimpleXML dat veel beter en netter kan doen?
 
Anja van Steenbrugge

Anja van Steenbrugge

30/10/2012 12:53:13
Quote Anchor link
Het scripts heb ik hier vandaan gehaald jaren terug... http://www.phphulp.nl/php/script/php-algemeen/twitter-op-je-website/1774/

Toevoeging op 30/10/2012 12:53:20:

Het scripts heb ik hier vandaan gehaald jaren terug... http://www.phphulp.nl/php/script/php-algemeen/twitter-op-je-website/1774/
 
Marvin H

Marvin H

30/10/2012 12:57:09
Quote Anchor link
Plaats je PHP script (twitter.php) waarin die regel 58 staat eens in plaats van de HTML output ...
 
Anja van Steenbrugge

Anja van Steenbrugge

30/10/2012 13:00:41
Quote Anchor link
Dit is regel 58:
Quote:
foreach($twitter->channel->item as $entry)


Hier rest code van twitter.
Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
    
    // Format datetime to relative time
    function relativetime($sDate)
        {

            $timestamp    =    strtotime($sDate);
            $now        =    time();
            $timediff    =    floor($now - $timestamp);
            
            
                {

                    
                    
                    return date ('d-m-Y G:i', $timestamp);
                    
                    
                }
        }

    
    // Format text to links
    function formatlinks($text)
        {

            $text = preg_replace("#(^|[\n ])([\w]+?://[\w]+[^ \"\n\r\t< ]*)#", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $text);
            $text = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r< ]*)#", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $text);
    
            $text = preg_replace("/#(\w+)/", "<a href=\"http://search.twitter.com/search?q=\\1\" target=\"_blank\">#\\1</a>", $text);
            return $text;
        }

    
    
    // Set parameters
    $userid        =    'cooltennis';
    $feed       =     'http://twitter.com/statuses/user_timeline.rss?screen_name='.$userid;
    $limit      =     3;
    $c          =     0;
    
    $ch         =    curl_init();
    $timeout     =     5;
    
    // CURL performance optimalisation
    curl_setopt ($ch, CURLOPT_URL, $feed);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $feed         =     curl_exec($ch);
    curl_close($ch);
    
    
    
    // Unload XML feed and display
    $twitter     =     new SimpleXMLElement($feed);
    foreach($twitter->channel->item as $entry)
        {

            
            $tweet    =    explode(':', $entry->title, 2);
            
            //toegevoegd:
            if (substr(trim($tweet[1]),0,1)!="@"){
                if (substr(trim($tweet[1]),0,2)!="RT"){
                    if (substr(trim($tweet[1]),0,1)!="#"){
                        if (strpos($tweet[1],"#")==0){
                        //einde toevoeging
                        
                        $c++;
                        echo '    <div class="tweet">
                                    <div class="contenttweed">
                                        <a href="http://twitter.com/#!/'
.$tweet[0].'">'.$tweet[0].'</a> '.formatlinks($tweet[1]).'
                                    </div>
                                    <div class="bottom">
                                        '
.relativetime($entry->pubDate).'
                                        </br><HR STYLE="width: 100%; height: 1px; color: #000000; background-color: #000000; border: solid #000000 0px;">
                                    </div>
                                </div>
                                '
;
                            
                        if($c == $limit) break;
                        }

                    //toevoeging
                    }
                }
            }

            //einde    
        }
    
?>
 
Marvin H

Marvin H

30/10/2012 13:04:24
Quote Anchor link
Bij jou moet je inderdaad ook de $feed veranderen:

van:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$feed
= 'http://twitter.com/statuses/user_timeline.rss?screen_name='.$userid;
?>


naar:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$feed
= 'http://api.twitter.com/1/statuses/user_timeline.rss?screen_name='.$userid;
?>
 
Anja van Steenbrugge

Anja van Steenbrugge

30/10/2012 13:09:17
Quote Anchor link
Het werkt weer. :) Bedankt voor info!
 
- Ariën  -
Beheerder

- Ariën -

30/10/2012 13:13:11
Quote Anchor link
Ik zou als ik jouw was sowieso eens kijken naar SimpleXML als je het goed wilt doen.
 
Marvin H

Marvin H

30/10/2012 13:18:28
Quote Anchor link
@-Aar-: Waarom? het werkt prima toch. Waarom wil iedereen hier altijd een script altijd anders hebben. Er is altijd wel een andere manier te verzinnen die misschien iets beter is. Ik zeg altijd... als het werkt, veilig is en een goede performance heeft, wat is het probleem
 
- Ariën  -
Beheerder

- Ariën -

30/10/2012 13:27:10
Quote Anchor link
Marvin Houweling op 30/10/2012 13:18:28:
@-Aar-: Waarom? het werkt prima toch. Waarom wil iedereen hier altijd een script altijd anders hebben. Er is altijd wel een andere manier te verzinnen die misschien iets beter is. Ik zeg altijd... als het werkt, veilig is en een goede performance heeft, wat is het probleem

Als je het wilt doen, doe het dan gewoon goed. Het is makkelijker uit te lezen, je bespaart een hoop onnodige fratsen, maakt de boel overzichtelijker door gebruik van speciale functies en het is minder foutgevoeliger.

Dus kijk er eens naar voordat je meteen gaat zeggen dat het huidige prima is. Misschien denk je wel van: "Ej, dit werkt een stuk makkelijker!"
 
Marvin H

Marvin H

30/10/2012 13:28:47
Quote Anchor link
Maybe, echter niet iedereen kan zelf PHP code schrijven, maar maakt gebruik van bestaande scripts, zoals deze. De meeste kunnen het een en ander wel aanpassen, maar niet zelf verzinnen.
 
- Ariën  -
Beheerder

- Ariën -

30/10/2012 13:31:40
Quote Anchor link
Het gebruik maken van bestaande scripts is gewoon niet aan te raden. Je weet niet precies wat het script doet, of het wel veilig is etc...

Zorg er gewoon liever voor dat je weet hoe PHP werkt, en verdiep je eens in de materie die het je makkelijker maakt. Ik heb het idee dat veel mensen het zich moeilijker maken terwijl het makkelijk kan.
 
Marvin H

Marvin H

30/10/2012 13:33:15
Quote Anchor link
je hebt gelijk...
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.