@codenerd på twitter Mit seneste tweet:

Sådan sender du Tweets fra PHP – Twitter, PHP og oAuth the easy way

Tidligere har det været utroligt nemt at sende tweets fra PHP. En simpel kald med cURL og så var tweetet afsted. Siden udgangen af August har Twitter dog lukket for denne type adgang til Twitter API. Dette betyder at der nu skal bruges oAuth for at kommunikere med Twitters API. Kort fortalt er oAuth en protokol der tillader sikker kommunikation mellem applikationer og et API, hvad enten det måtte være mellem et PHP script eller et desktop program og en API.

Som sagt er PHP oAuth og Twitter lidt mere besværligt end det twitter kaldte “basic authentication”. Før skulle man i bund og grund kun bruge sit twitter password og brugernavn, og så kunne du sende et Tweet. Med det lidt større besvær kommer dog også meget højere sikkerhed, så dette skift bør alle faktisk være glade for.

En klasse til at kommunikere med Twitter fra PHP

Da oAuth bliver lidt langhåret fandt jeg hurtig en klasse som allerede fungerede rigtigt godt nemlig Abraham twitter oauth – med denne bliver det hurtigt meget nemmere at sende tweets fra PHP, og man slipper for at opfinde den dybe tallerken igen. Dog skal du stadig lige et par trin igennem før dit PHP Script kan tweete igen.

Før dit script kan kommunikere med twitter skal det registreres som en applikation, dette gøres på følgende måde:

  1. Gå til http://dev.twitter.com og log ind med din Twitter konto, herefter klik “Register an application”
  2. Udfyld formularen, her er det vigtigt du udfylder din applikationsnavn ordentligt da denne bliver vist hver gang du tweeter. Samt at du afkrydser “Read & Write” i Default access type. Se evt. Screenshot her.
  3. Nu har du registreret din app. Og nu skal du bruge 4 nøgler før du kan sende tweets fra PHP. Disse nøgler får du ved at trykke. “View Your Applications” -> Edit Details – i bunden (ca) står din “Consumer Key” og “Consumer Secret” disse to nøgler kopiere du over i dit dokument.
  4. Klik “My Access token” i højremenuen, og kopier ligeledes “Access token (oauth_token)” og “Access Token Secret (oauth_token_secret)

Med disse 4 trin er du nu klar til at bruge klassen Abraham twitter oauth. Når du har hentet og udpakket filen finder du de to filer twitteroauth/twitteroauth.php og twitteroauth/OAuth.php. Herefter skal du blot inkludere twitteroauth.php i dit script, og du er klar til at sende tweets afsted med et simpelt klassekald:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
//Dine 4 nøgler som du fik i trin 3 og 4
$consumerKey = 'Din consumer key';
$consumerSecret = 'Din consumer secret';
$oAuthToken = 'Dit Access token';
$oAuthSecret = 'Din access token secret';
//inkluder klassen
require_once($_SERVER['DOCUMENT_ROOT'].'/sti/til/twitteroauth.php');
//start ny instans
$twitter = new TwitterOAuth($consumerKey, $consumerSecret, $oAuthToken, $oAuthSecret);
//send et tweet
$twitter->post('statuses/update', array('status' => 'Hello World fra PHP og oAuth'));
?>

Når du sender Tweets fra scriptet vil det ikke længere stå som være sendt via Twitter Api, men i stedet det navn du angav da du registrerede applikationen. Mine tweets kommer fx fra Codenerds Web Realm, og det er da lidt cool :-)

Twitter klassen kan også bruges til andet end at sende et enkelt tweet, fx kan du slette tweets, og der er også indbygget funktioner til at autorisere andre brugere end dig selv, hvis du fx ønsker at lave en tjeneste til flere brugere. Disse metoder må du i første omgang læse om i klassens dokumentation

Nb. Hvis du blot ønsker at tweete dine blogindlæg, så kan du nemmere tilmelde dig en service som Twitterfeed.

God fornøjelse :-)

5 kommentarer

  1. Skrevet af ulstrup  d. 21/09/2010 kl 22:54

    Martin det ser jo dejlig let ud når du gør det. Jeg er blevet ret nysgerrig angående Facebook OAuth access token, men er bange for at jeg ikke forstår konceptet med at “obtain an access token”.

    Er det noget du kan forklare eller er det bedre jeg bare leder videre på developers.facebook.com og andre steder

    Svar på kommentaren
  2. Skrevet af ulstrup  d. 22/09/2010 kl 23:10

    Martin det ser jo dejlig let ud når du gør det. Jeg er blevet ret nysgerrig angående Facebook OAuth access token, men er bange for at jeg ikke forstår konceptet med at “obtain an access token”.

    Er det noget du kan forklare eller er det bedre jeg bare leder videre på developers.facebook.com og andre steder

    Svar på kommentaren

Leave a Reply to Martin Nielsen Cancel reply

Krævede felter er markeret med *.

*


Dansk Foe Guide