Klávesové zkratky na tomto webu - rozšířené Na obsah stránky

Translate to English… Ins Deutsche übersetzen…

Twitter for PHP

Twitter for PHP is a very small and easy-to-use library for sending messages to Twitter and receiving status updates with OAuth support.

Download Twitter for PHP 2.2

It requires PHP (version 5 or newer) and is licensed under the New BSD License. You can obtain the latest development version from our GitHub repository.

Getting started

Create object using OAuth keys:

$twitter = new Twitter($consumerKey, $consumerSecret,
        $accessToken, $accessTokenSecret);

The send() method sends new tweet. The message must be encoded in UTF-8 and it automatically makes long URLs short using is.gd service.

$twitter->send('I am fine today.');

The load() method returns the 20 most recent statuses posted in the last 24 hours by you:

$channel = $twitter->load(Twitter::ME);

or posted by you and your friends:

$channel = $twitter->load(Twitter::ME_AND_FRIENDS);

or most recent mentions for you:

$channel = $twitter->load(Twitter::REPLIES);

Displaying tweets

The returned channel is a SimpleXMLElement object. Extracting the information from the channel is easy:

<ul>
<?php foreach ($channel->status as $status): ?>
        <li><a href="http://twitter.com/<?= $status->user->screen_name ?>">
                <?= htmlspecialchars($status->user->name) ?></a>:

                <?= Twitter::clickable($status->text) ?>

                <small>at <?= date("j.n.Y H:m", strtotime($status->created_at)) ?></small>
        </li>
<?php endforeach ?>
</ul>

The static method Twitter::clickable() makes links in status clickable. In addition to regular links, it links @username to the user’s Twitter profile page and links hashtags to a Twitter search on that hashtag.

Searching

The search() method provides searching in twitter statuses:

$twitter = new Twitter;
$results = $twitter->search('#nette');

The returned result is a PHP array:

<?php foreach ($results as $result): ?>
        <li><a href="http://twitter.com/<?= $result->from_user ?>">
                <img src="<?= htmlspecialchars($result->profile_image_url) ?>" width="48">
                <?= htmlspecialchars($result->from_user) ?></a>:

                <?= Twitter::clickable($result->text) ?>

                <small>at <?= date("j.n.Y H:i", strtotime($result->created_at)) ?></small>
        </li>
<?php endforeach ?>

Error handling

All methods throw a TwitterException on error:

try {
        $channel = $twitter->load(Twitter::ME);
} catch (TwitterException $e) {
        echo "Error: ", $e->getMessage();
}

Additional features

The authenticate() method tests if user credentials are valid:

if (!$twitter->authenticate()) {
        die('Invalid name or password');
}

napsáno 2. 7. 2008 | shlédnuto 29462x | nahoru


Komentáře RSS 2.0 komentářů » přidat

avatar

#1 veena http://dvanula.cz nový

Díky Davide, zrovna Twitter chceme použít v jednom novém „omračujícím ;-)“ projektu. Tak jsi nám to jenom ulehčil!

Díky, pokud se projekt povede, pozvu tě na pivo ;-D

Posláno 3. 7. 2008 v 0.50 | Odpovědět
Na komentář reagoval [2] Inza
avatar

#2 Inza http://www.dvojmo.cz nový

#1 veena: Tak to nás bude víc, co dělají na “omračujících” projektech a pozvou tě na pivo:-)

Posláno 4. 7. 2008 ve 20.57 | Odpovědět
avatar

#3 Marcus Povey http://www.marcus-povey.co.uk nový

Twitter broke/fixed their API recently and now this library returns 417 when attempting to post.

Fix: Add the following line to twitter.class­.php:113 just after the other curl_setopt lines and be fore the if ($post)…

curl_setopt($curl, CURLOPT_HTTPHEADER, array(‘Expect:’));

Posláno 9. 1. 2009 ve 12.02 | Odpovědět
Na komentář reagoval [4] David Grudl
avatar

#4 David Grudl http://davidgrudl.com nový

#3 Marcus Povey: thank you Marcus, I have updated it.

Posláno 9. 1. 2009 v 16.33 | Odpovědět
avatar

#5 Martin Ragg http://www.reticon.de nový

I've s.th. “strange” – I'm using your class and normally all is working fine – today I twittered “Königinnen der Nacht” and it seems to me that the class “killed” some letters. On twitter always there was only “Köinnen der Nacht” – do you have an idea?
(Directly from twitter all was working fine .. )
best regards,
martin

Posláno 15. 2. 2009 ve 22.27 | Odpovědět
Na komentář reagoval [6] David Grudl
avatar

#6 David Grudl http://davidgrudl.com nový

#5 Martin Ragg: And was the message encoded in UTF-8?

Posláno 18. 2. 2009 v 18.48 | Odpovědět
avatar

#7 Martin Ragg http://www.reticon.de nový

#10 David Grudl – Oh sorry, my fault – there was no utf8_encode, I fixed my script and it seems to be working finde

Posláno 22. 2. 2009 v 15.51 | Odpovědět
avatar

#8 Ryan Taylor nový

Hello David. Thank you very much for writing this PHP class for Twitter. I have one question: is there anyway to return the status ID of a tweet using the send() method? Currently it looks as though you have it returning only a boolean true/false.

Thanks again!

Posláno 11. 3. 2009 ve 3.17 | Odpovědět
Na komentář reagoval [10] David Grudl
avatar

#9 Robb Corrigan http://twitcharts.com nový

Hello David, excellent API! I'm using this in a simple hobby project that I've built which allows people to tweet Google charts. http://twitcharts.com/

I've given you a plug here: http://twitcharts.com/about.php

Thanks again!

Posláno 14. 3. 2009 v 15.42 | Odpovědět
avatar

#10 David Grudl http://davidgrudl.com nový

#8 Ryan Taylor: Ryan I have updated send() method, it returns ID on success and FALSE on failure now.

Posláno 16. 3. 2009 v 1.26 | Odpovědět
avatar

#11 Nathan nový

It seems that Twitter returns tweets in UTC time. Is there an easy way to make the time and date conform to my time zone?
I saw something that might help, here: http://www.alephnaught.com/Blog/?… but my php knowledge is too limited to implement it with your solution.

Thanks,
Nathan

Posláno 26. 3. 2009 v 6.52 | Odpovědět
avatar

#12 Dragon Jake http://blog.dragonjake.net nový

Díky Davide za aktualizaci! Už jsem měl plány, že podporu ve svém forku nějak zkompletním (třeba odstraním zbytečnou druhou knihovnu a zlepším celý proces autorizace, jak jsi udělal Ty) a nenechám ji v tomhle stavu “nějak to funguje na to, co potřebuju”. Jsem rád, že je mohu zapomenout a věnovat se jiným věcem ;]

Posláno 9. 9. 2010 ve 14.00 | Odpovědět
avatar

#13 srigi nový

Hello David, thank for good job. But I got problem, maybe I'm just blind or stupid, but how do I get $accessToken and $accessTokenSecret. I think that sctript must run OAuth loop (my app, twitter, return to my app), but this isn't covered in this article. Can you please add short desctiption/tu­torial on this?
THX.

Posláno 8. 10. 2010 v 11.32 | Odpovědět
Na komentář reagoval [14] David Grudl
avatar

#14 David Grudl http://davidgrudl.com nový

#13 srigi: RTFM :-) There is a readme.txt file with complete explanation.

Posláno 8. 10. 2010 ve 14.19 | Odpovědět
avatar

#15 Fost nový

Hi David,

Very nice! Just one question: Is there a way of changing the limit from 24 hours for load()?

Thanks!

Posláno 17. 2. 2011 ve 14.56 | Odpovědět
avatar

#16 Onecar http://tomaskrchnak.cz nový

Hello,
is there any way how to make links in $status->text active, so I can click right away? So far I only have almost plain text, only author is a link.
Thanks for your response.

Posláno 14. 3. 2011 ve 23.29 | Odpovědět
Na komentář reagoval [17] David Grudl
avatar

#17 David Grudl http://davidgrudl.com nový

#16 Onecar: in last revision there is a method Twitter::clic­kable().

Posláno 30. 3. 2011 v 5.12 | Odpovědět
avatar

#18 martin131 http://martin.matuna.cz nový

Ahoj, vrací se v poli i přímý odkaz na tweet? Plánuješ případně tuto možnost přidat??

Posláno 2. 4. 2011 ve 13.48 | Odpovědět
avatar

#19 David Grudl http://davidgrudl.com nový

Ten se dá poskládat, viz příklady v článku.

Posláno 2. 4. 2011 v 15.35 | Odpovědět
Na komentář reagoval [20] martin131
avatar

#20 martin131 http://martin.matuna.cz nový

#19 David Grudl: Jsem asi slepý, ani po druhém dlouhém zkoumání jsem to v těch příkladech nenašel. :D Nakonec jsem se podíval do wiki Twitter API.

Posláno 5. 4. 2011 ve 23.29 | Odpovědět

Tento článek byl uzavřen. Už není možné k němu přidávat komentáře.

Výtah na začátek článku na první komentář

Názory čtenářů v diskusích nejsou názory provozovatele webu, a ten za jejich obsah neodpovídá.

phpFashion © 2004, 2012 David Grudlo webu

Pokud není uvedeno jinak, podléhá obsah těchto stránek licenci Creative Commons BY-NC-ND Creative Commons License BY-NC-ND

Ukázky zdrojových kódů smíte používat s uvedením autora a URL tohoto webu bez dalších omezení.