Есть такая библиотека — twitter-async (лицензия — свободное распространение и использование).
Из неё нужно включить в проект файлы
EpiCurl
EpiOAuth
EpiSequence
EpiTwitter
Далее на twitter.com нужно завести приложение.
После успешной регистрации Twitter выдаст полезные данные для oAuth-авторизации, нужны из них два: Consumer key и Consumer secret — это авторизационные данные приложения, их нужно сохранить где-нибудь, к примеру, в базе.
Для работы с твиттером создаём обёртку:
Go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
classTwitter{
publicstaticfunctionconnect()
{
$twitter=self::$twitter;
if(!$twitter)
{
$twitter=newEpiTwitter(
self::get('consumer_key'),
self::get('consumer_secret'),
self::get('oauth_token'),
self::get('oauth_token_secret')
);
}
return$twitter;
}
}
После этого нужно создать страничку, чтобы пользователь смог разрешить использовать свой аккаунт на твиттере созданному нами приложению.
<ahref="http://twitter.com/<?=$twitterInfo->screen_name?>"style="background: url( '<?=$twitterInfo->profile_image_url?>' ) no-repeat left center">
<?=$twitterInfo->name?>
</a>
</dt>
<dd>
<?='Twitter protocol is enabled'?>,<ahref="/disable"><?='disable'?></a>.
</dd>
</dl>
<?else:?>
<dl class="twitter-info">
<dt></dt>
<dd>
<?='Twitter protocol is disabled'?>,<ahref="<?=$authorizationUrl?>"><?='enable'?></a>.
</dd>
</dl>
<?endif?>
в метод getAuthorizeUrl(NULL, array(‘oauth_callback’ => ‘http://mysite.my/’ . $dynamicUrl)) можно передавать параметром url, на который нужно редиректить пользователя.
Страничка, на которую редиректится пользователь c twitter.com:
Go
1
2
3
4
5
6
7
$twitterObj=Twitter::connect();
$twitterObj->setToken($GET['oauth_token']);
$token=$twitterObj->getAccessToken();
// сохранение в базу параметров токена пользователя