Twitter timeline doet het niet meer...
Code (php)
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
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("–", "—", $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";
}
?>
$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("–", "—", $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
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.
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:
Je link die je probeert te openen klopt niet... 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)
1
2
3
2
3
<?php
$feed = 'http://api.twitter.com/1/statuses/user_timeline.rss?screen_name='.$username.'&count='.$limit;
?>
$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
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
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 :)
ohw dus toch een update .... Nogmaals bedankt.
Warning: Invalid argument supplied for foreach() in /home/cooltennis/domains/cooltennis.nl/public_html/twitter.php on line 58
http://cooltennis.nl/twitter.php
Gewijzigd op 30/10/2012 12:47:06 door Anja van Steenbrugge
Waarom zou je zelf een RSS-feed moeten uitpluizen terwijl SimpleXML dat veel beter en netter kan doen?
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/
Het scripts heb ik hier vandaan gehaald jaren terug... 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/
Plaats je PHP script (twitter.php) waarin die regel 58 staat eens in plaats van de HTML output ...
Quote:
foreach($twitter->channel->item as $entry)
Hier rest code van twitter.
Quote:
Code (php)
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
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
}
?>
// 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
}
?>
van:
naar:
Het werkt weer. :) Bedankt voor info!
Ik zou als ik jouw was sowieso eens kijken naar SimpleXML als je het goed wilt doen.
@-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
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!"
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.
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.
je hebt gelijk...