PDA

Bekijk Volledige Versie : Twitter niet meer implementeerbaar?



Meldpunt Zangvogeloverlast
06/07/10, 15:25
Beste mensen!

Sinds een tijdje implementeerde ik en twitteraccount in een mijner websites
op deze wijze:


$twitterstream = preg_replace("/(\015\012)|(\015)|(\012)/","\n",join("",
file("http://www.twitter.com/statuses/user_timeline/129456986.rss")));

Werkte prima.

Maar nu krijg ik:

Warning: file(http://www.twitter.com/statuses/user_timeline/129456986.rss)
[function.file <http://www.harmonicahoek.nl/function.file> ]: failed to open
stream: HTTP request failed! HTTP/1.1 400 Bad Request in
/home/vhosts/harmonicahoek.nl/httpdocs/_php/_inhoud.php on line 1156

Warning: join() [function.join <http://www.harmonicahoek.nl/function.join>
]: Bad arguments. in /home/vhosts/harmonicahoek.nl/httpdocs/_php/_inhoud.php
on line 1156

Hoe krijgt Twitter dit voor elkaar???

--
Groeten, Eduard

John Bokma
06/07/10, 21:55
Meldpunt Zangvogeloverlast <meldpunt.zangvogeloverlast@xs4all.nl>
writes:

> Beste mensen!
>
> Sinds een tijdje implementeerde ik en twitteraccount in een mijner websites
> op deze wijze:
>
>
> $twitterstream = preg_replace("/(\015\012)|(\015)|(\012)/","\n",join("",
> file("http://www.twitter.com/statuses/user_timeline/129456986.rss")));
>
> Werkte prima.
>
> Maar nu krijg ik:
>
> Warning: file(http://www.twitter.com/statuses/user_timeline/129456986.rss)
> [function.file <http://www.harmonicahoek.nl/function.file> ]: failed to open
> stream: HTTP request failed! HTTP/1.1 400 Bad Request in
> /home/vhosts/harmonicahoek.nl/httpdocs/_php/_inhoud.php on line 1156
>
> Warning: join() [function.join <http://www.harmonicahoek.nl/function.join>
> ]: Bad arguments. in /home/vhosts/harmonicahoek.nl/httpdocs/_php/_inhoud.php
> on line 1156
>
> Hoe krijgt Twitter dit voor elkaar???

Ik weet dat met allow_url_fopen je kan uitzetten dat file URLs kan
openen. Geen idee of dat een rol speelt? Op basis van response zou ik
zeggen niet, je krijgt nl. een Bad Request. Maar weet je of PHP recent
geupdated is op de server? Als PHP "ineens" stopt met werken [1] is dat vaak
de oorzaak.


[1] geld ook vaak voor andere dingen.

--
John Bokma j3b

Hacking & Hiking in Mexico - http://johnbokma.com/
http://castleamber.com/ - Perl & Python Development

Michiel de Roo
07/07/10, 08:05
On 07/06/2010 03:22 PM, Meldpunt Zangvogeloverlast wrote:
> Beste mensen!
>
> Sinds een tijdje implementeerde ik en twitteraccount in een mijner websites
> op deze wijze:
>
>
> $twitterstream = preg_replace("/(\015\012)|(\015)|(\012)/","\n",join("",
> file("http://www.twitter.com/statuses/user_timeline/129456986.rss")));
>
> Werkte prima.
>
> Maar nu krijg ik:
>
> Warning: file(http://www.twitter.com/statuses/user_timeline/129456986.rss)
> [function.file <http://www.harmonicahoek.nl/function.file> ]: failed to open
> stream: HTTP request failed! HTTP/1.1 400 Bad Request in
> /home/vhosts/harmonicahoek.nl/httpdocs/_php/_inhoud.php on line 1156
>
> Warning: join() [function.join <http://www.harmonicahoek.nl/function.join>
> ]: Bad arguments. in /home/vhosts/harmonicahoek.nl/httpdocs/_php/_inhoud.php
> on line 1156
>
> Hoe krijgt Twitter dit voor elkaar???
>

Misschien moet je het eens met curl proberen.

$ch =
curl_init('http://www.twitter.com/statuses/user_timeline/129456986.rss');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$feed = curl_exec($ch);

// Check if any error occured
if(curl_errno($ch))
{
echo 'Error';
}

// Close handle, nooit vergeten!
curl_close($ch);

$twitterstream = preg_replace("/(\015\012)|(\015)|(\012)/","\n",join("",
$feed));

Ik heb de code niet gecheckt, maar zoiets moet het zijn.

Meldpunt Zangvogeloverlast
07/07/10, 21:25
Op woensdag 7 juli 08:01, in artikel
4c341826$0$22913$e4fe514c@news.xs4all.nl, Michiel de Roo
<yourlove@welovespam.nl> schreef:

> On 07/06/2010 03:22 PM, Meldpunt Zangvogeloverlast wrote:
>> Beste mensen!
>>
>> Sinds een tijdje implementeerde ik en twitteraccount in een mijner websites
>> op deze wijze:
>>
>>
>> $twitterstream = preg_replace("/(\015\012)|(\015)|(\012)/","\n",join("",
>> file("http://www.twitter.com/statuses/user_timeline/129456986.rss")));
>>
>> Werkte prima.
>>
>> Maar nu krijg ik:
>>
>> Warning: file(http://www.twitter.com/statuses/user_timeline/129456986.rss)
>> [function.file <http://www.harmonicahoek.nl/function.file> ]: failed to open
>> stream: HTTP request failed! HTTP/1.1 400 Bad Request in
>> /home/vhosts/harmonicahoek.nl/httpdocs/_php/_inhoud.php on line 1156
>>
>> Warning: join() [function.join <http://www.harmonicahoek.nl/function.join>
>> ]: Bad arguments. in /home/vhosts/harmonicahoek.nl/httpdocs/_php/_inhoud.php
>> on line 1156
>>
>> Hoe krijgt Twitter dit voor elkaar???
>>
>
> Misschien moet je het eens met curl proberen.
>
> $ch =
> curl_init('http://www.twitter.com/statuses/user_timeline/129456986.rss');
> curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
> $feed = curl_exec($ch);
>
> // Check if any error occured
> if(curl_errno($ch))
> {
> echo 'Error';
> }
>
> // Close handle, nooit vergeten!
> curl_close($ch);
>
> $twitterstream = preg_replace("/(\015\012)|(\015)|(\012)/","\n",join("",
> $feed));
>
> Ik heb de code niet gecheckt, maar zoiets moet het zijn.

Nee, werkt niet: Warning: join() [function.join
<http://www.harmonicahoek.nl/function.join> ]: Bad arguments. in
/home/vhosts/harmonicahoek.nl/httpdocs/ts.php on line 25

Toch dank je voor de moeite. Inmiddels heb ik eigen (java-)script van
Twitter herself gevonden. Dat werkt.

--
Groeten, Eduard

Roland van Ipenburg
07/07/10, 23:55
On Tue, 06 Jul 2010 15:22:52 +0200, Meldpunt
Zangvogeloverlast <meldpunt.zangvogeloverlast@xs4all.nl>
mentioned:
> Beste mensen!
>
> Sinds een tijdje implementeerde ik en twitteraccount in een mijner websites
> op deze wijze:
>
>
> $twitterstream = preg_replace("/(\015\012)|(\015)|(\012)/","\n",join("",
> file("http://www.twitter.com/statuses/user_timeline/129456986.rss")));

…

> Hoe krijgt Twitter dit voor elkaar???

Als je niet checkt of je RateLimit hierbij niet in gevaar
komt zou het zomaar kunnen dat twitter die de laatste tijd
verlaagd heeft en je nu opeens wel tegen die limiet aanloopt
en het dus vaker niet meer op deze manier werkt. Dan kan je
ook op een gegeven moment weer gaan testen en denken dat het
wel werkt, maar dat is dan alleen maar omdat je
RateLimit-Remaining ondertussen weer wat is opgelopen. Als
je het goed wil doen zou je dus toch wat caching en
dergelijke in moeten bouwen zodat je altijd onder je limiet
blijft.

--
Roland van Ipenburg
roland.van.ipenburg@xs4all.nl
http://www.xs4all.nl/~ipenburg/
"Pooh Styx?"

John Bokma
08/07/10, 02:55
Roland van Ipenburg <roland.van.ipenburg@xs4all.nl> writes:

> On Tue, 06 Jul 2010 15:22:52 +0200, Meldpunt
> Zangvogeloverlast <meldpunt.zangvogeloverlast@xs4all.nl>
> mentioned:
>> Beste mensen!
>>
>> Sinds een tijdje implementeerde ik en twitteraccount in een mijner websites
>> op deze wijze:
>>
>> $twitterstream = preg_replace("/(\015\012)|(\015)|(\012)/","\n",join("",
>> file("http://www.twitter.com/statuses/user_timeline/129456986.rss")));

[..]

>> Hoe krijgt Twitter dit voor elkaar???
>
> Als je niet checkt of je RateLimit hierbij niet in gevaar
> komt zou het zomaar kunnen dat twitter die de laatste tijd
> verlaagd heeft

Roland heeft het juiste antwoord:

"Over the past week, Twitter has reduced the number of API calls from
350 to 175 an hour. At one point last week, that number was
temporarily reduced to only 75."

Bron:
http://mobile.slashdot.org/story/10/07/07/1836256/Twitter-Throttling-Hits-Third-Party-Apps

--
John Bokma j3b

Hacking & Hiking in Mexico - http://johnbokma.com/
http://castleamber.com/ - Perl & Python Development

Roland van Ipenburg
08/07/10, 12:15
On Wed, 07 Jul 2010 19:53:59 -0500, John Bokma
<john@castleamber.com> mentioned:
> Roland van Ipenburg <roland.van.ipenburg@xs4all.nl>
> writes:
>
>> On Tue, 06 Jul 2010 15:22:52 +0200, Meldpunt
>> Zangvogeloverlast <meldpunt.zangvogeloverlast@xs4all.nl>
>> mentioned:
>>> Beste mensen!
>>>
>>> Sinds een tijdje implementeerde ik en twitteraccount in
>>> een mijner websites op deze wijze:
>>>
>>> $twitterstream =
>>> preg_replace("/(\015\012)|(\015)|(\012)/","\n",join("",
>>> file("http://www.twitter.com/statuses/user_timeline/129456986.rss")));
>
> [..]
>
>>> Hoe krijgt Twitter dit voor elkaar???
>>
>> Als je niet checkt of je RateLimit hierbij niet in gevaar
>> komt zou het zomaar kunnen dat twitter die de laatste
>> tijd verlaagd heeft
>
> Roland heeft het juiste antwoord:
>
> "Over the past week, Twitter has reduced the number of
> API calls from 350 to 175 an hour. At one point last
> week, that number was temporarily reduced to only 75."
>
> Bron:
> http://mobile.slashdot.org/story/10/07/07/1836256/Twitter-Throttling-Hits-Third-Party-Apps

Wanneer twitter API calls zo schaars worden zou ik mij ook
voor kunnen stellen dat gebruikers er ook niet op zitten te
wachten dat allemaal websites client-side zomaar het budget
van de bezoeker wegtikken. Dan is het wel zo netjes om het
server-side op te lossen zodat die calls niet de Rate van de
bezoeker beïnvloeden.

--
Roland van Ipenburg
roland.van.ipenburg@xs4all.nl
http://www.xs4all.nl/~ipenburg/
"Pooh Styx?"