PHP постим в Twitter

И так, нам будет нужен TwitterOAuth PHP Class. Качаем отсюда https://github.com/abraham/twitteroauth. Или прямая ссылка на скачивание https://github.com/abraham/twitteroauth/zipball/0.2.0-beta3.
Из этого архива нам понадобятся только 2 файла, которые находятся в папке «twitteroauth», это — OAuth.php и twitteroauth.php

Дальше, регистрируем свое приложение на твитере. Регистрация доступна по адресу https://dev.twitter.com/apps.

На данном этапе нам необходимо будет ввести стандартные необходимые поля: название нашего приложения (Application Name), его описание (Application Name), сайт нашего приложения (Application Website) , организацию (Organization – если есть).

Ниже необходимо выбрать какой тип приложения мы будем использовать Client или Browser. Так как взаимодействия с браузером и пользователем у нас не будет, то мы выбираем Client (Desktop Client).

Дальше выбираем уровень доступа (Default Access type) Чтение-Запись твиттов (Read & Write) или просто чтение (Read-only).

При необходимости можно загрузить иконку для своего приложения.

Callback URL не указываем, так как нет взаимодействия с веб интерфейсом.

После успешной регистрации вашего приложения вам будут предоставлены 2 ключа доступа – это OAuth Consumer key и Consumer secret.

Создаем первый файлик index.php:

<?php

define('TWITTER_KEY', 'Consumer key');
define('TWITTER_SECRET', 'Consumer secret');

include_once 'twitteroauth.php';

function generateAuthLink()
{
$oauth = new TwitterOAuth(TWITTER_KEY, TWITTER_SECRET);

$request = $oauth->getRequestToken();

$requestToken = $request['oauth_token'];
$requestTokenSecret = $request['oauth_token_secret'];

$requestStr = '<?php' . "\n";
$requestStr .= '$request_token="' . $requestToken . "\"; \n";
$requestStr .= '$request_token_secret="' . $requestTokenSecret . "\"; \n";
$requestStr .= '?>' . "\n";
//echo $requestStr;
file_put_contents('config.php', $requestStr);
// Создаем ссылку
$registerURL = $oauth->getAuthorizeURL($request);
// Показываем ссылку
echo "<br><br><br><a href=\"$registerURL\" target=\"_blank\">Register with Twitter and get PIN</a>";
}

function generateOauthToken($requestToken, $requestTokenSecret, $pin)
{

$oauth = new TwitterOAuth(TWITTER_KEY, TWITTER_SECRET, $requestToken, $requestTokenSecret);

// Создаем коды доступа по PIN коду
$request = $oauth->getAccessToken($pin);
$accessToken = $request['oauth_token'];
$accessTokenSecret = $request['oauth_token_secret'];

$requestStr = '<?php' . "\n";
$requestStr .= '$accessToken="' . $accessToken . "\"; \n";
$requestStr .= '$accessTokenSecret="' . $accessTokenSecret . "\";\n";
$requestStr .= '?>' . "\n";

file_put_contents('access.php', $requestStr);

echo "<br>ok all done<br>";
}
?>

<a href="index.php?step=1">Step 1</a>
<a href="index.php?step=2">Step 2</a>

<?php if($_GET['step'] == 1){
generateAuthLink();
} ?>

<?php if($_GET['step'] == 2){
if(isset($_POST['pin'])){
include_once 'config.php';
$pin = $_POST['pin'];
generateOauthToken($request_token, $request_token_secret, $pin);
echo "U can try to send message now<br>";
}else{
$pin = '';
}
?>
<form action="index.php?step=2" method="post" accept-charset="utf-8">
PIN :<input type="text" name="pin" value="<?php echo $pin; ?>" id="pin"  />
<input type="submit" name="sub" value="Submit"  /></form>
<?php
} ?>

Переходим на эту страницу, и выполняем два действия, Step 1 даем доступ к нашему приложению и генерируем PIN код. На Step 2 вводим полученный PIN код. Далее создаем второй файлик send.php:

<?php
define('TWITTER_KEY', 'AWM4YnXBmEM7HCGu2ZlCw');
define('TWITTER_SECRET', 'YmzuyHsZhl6nHKMDbMv68G14ue0l37ZM4Jd1owBldpQ');
include_once 'twitteroauth.php';
include_once 'access.php';
function sendMessage($accessToken, $accessTokenSecret,$message)
{
$oauth = new TwitterOAuth(TWITTER_KEY, TWITTER_SECRET, $accessToken, $accessTokenSecret);

// Проверяем от кого будут идти сообщение
$credentials = $oauth->get("account/verify_credentials");
echo "Connected as @" . $credentials->screen_name;

// Отправляем сообщение
$oauth->post('statuses/update', array('status' => "VeXell robot: hello world"));
}
sendMessage ($accessToken, $accessTokenSecret,'Hellow word');
?>

Вот собственно и все, однажды сгенирировав токены вы сможете пользоваться ими столько, сколько нужно.
Статья написана по материалам сайта vexell.ru

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>