Вступление
Сайты социальных сетей играют жизненно важную роль в повышении популярности веб-сайта или приложения. Подавляющее большинство веб-сайтов предоставляют возможность делиться своим контентом на популярных сайтах социальных сетей одним нажатием кнопки. Организация конкурса на этих сайтах — еще один отличный способ продвижения вашего приложения.
Мы собираемся создать конкурс на Twitter, чтобы улучшить взаимодействие пользователя с веб-приложением. Это будет серия из двух частей, первая часть которой посвящена ознакомлению вас с конкурсами Twitter и настройке приложения Twitter, а вторая часть будет посвящена реализации конкурса. Давайте начнем.
Введение в конкурсы в твиттере
Twitter — это социальная сеть и служба микроблогов, использующая мгновенные сообщения, SMS или веб-интерфейс. Твиттер считается SMS-сообщением в Интернете, поэтому конкурсы в Твиттере обычно отличаются от конкурсов в других популярных социальных сетях.
Основная цель конкурса в Твиттере — заставить людей создавать как можно больше твитов по определенной теме для повышения осведомленности. Давайте посмотрим на некоторые из самых популярных типов конкурсов с помощью Twitter.
-
Розыгрыши — это самый простой тип конкурсов в Твиттере. Пользователи могут принять участие в конкурсе, создав твит с указанным тегом # и своим именем пользователя . Победитель будет выбран через счастливую ничью.
-
Творческий ответ — В этом конкурсе организаторы задают вопрос, создавая твит или публикуя вопрос на своем веб-сайте. Пользователь должен создавать твиты с указанным тегом #, чтобы ответить на вопрос. Самый креативный ответ будет выбран организаторами вручную.
-
Ретвит для победы — организаторы создают твит, а пользователи должны ретвитнуть его. Победитель будет выбран случайным образом из всех ретвитов.
-
Следуйте, чтобы выиграть — Организаторы предоставляют профиль компании или профиль, который они хотят продвигать. Пользователи должны быть подписчиками данного профиля. Выбор победителей обычно производится случайным образом в конце конкурса.
Вместо того, чтобы полностью полагаться на удачу, мы создадим конкурс хэштегов, который определит победителя на основе усилий и производительности пользователей.
Планирование конкурса хэштегов Twitter
Вот шаги конкурса:
-
Пользователи должны аутентифицировать свою учетную запись Twitter — обычно это делается с помощью кнопки входа в Twitter, где пользователи могут авторизовать доступ к приложению через свою учетную запись Twitter.
-
Создавайте твиты с помощью хэштегов через наше приложение — мы собираемся использовать два хэштега с каждым твитом. Первый тег используется для продвижения бренда. Если наш бренд — SitePoint, у нас будет хештег
#SitePoint
для продвижения нашего бренда. Второй тег используется для идентификации приложения среди других твитов с первым хэштегом. -
Выбор победителей. Существует множество способов автоматического выбора победителей в таких конкурсах. В этом случае мы будем оценивать победителей по количеству ретвитов. Победитель будет выбран на основе общего количества ретвитов для твитов, созданных пользователями.
Строительство
Для начала вам необходимо зарегистрировать приложение в Twitter. Посетите сайт разработчика Twitter и создайте приложение с правами на запись. Если у вас есть приложение Twitter с consumer_key
и consumer_secret
, следуйте инструкциям в пошаговом руководстве, чтобы завершить реализацию.
Шаг 1 — Настройка библиотеки OAuth
OAuth — это стандартная техника, используемая Twitter для аутентификации доступа к их API. Существует множество существующих библиотек для автоматизации процесса аутентификации с помощью Twitter. Мы собираемся использовать библиотеку с именем tmhOAuth . Загрузите и распакуйте zip-файл с Github или клонируйте его.
Создайте папку приложения с файлом index.php
внутри и скопируйте содержимое библиотеки tmhOAuth в папку с именем twitter
. Затем tmhOAuth.php
файл tmhOAuth.php
файл index.php
(см. Ниже).
Шаг 2 — Аутентификация пользователей с помощью Twitter
Сначала пользователи должны авторизовать приложение, используя свою учетную запись Twitter. Нам нужна кнопка или ссылка, которая перенаправляет пользователя на процесс авторизации. Мы собираемся использовать отдельный класс для управления логикой этого приложения. Создайте файл с именем twitter_hashtag_contest.php
внутри папки приложения. Теперь давайте посмотрим на обновленный файл index.php
.
<? php require 'twitter/tmhOAuth.php' ;
require 'twitter_hashtag_contest.php' ; session_start (); $contest = new TwitterHashTagContest ();
if ( isset ( $_GET [ 'action' ]) && $_GET [ 'action' ] == 'twitter' ){ $contest -> getRequestToken ();
} else { echo "<a href='?action=twitter'>LogIn with Twitter</a>" ;
}
Мы можем отобразить ссылку для входа по умолчанию. После того, как ссылка для входа нажата, мы должны перенаправить пользователя в Twitter для авторизации приложения и получения токенов запроса. Мы должны установить начальные детали класса TwitterHashTagContest
, прежде чем мы перейдем к реализации функции getRequestToken
.
Шаг 3 — Инициализация класса TwitterHashTagContest
Мы используем класс TwitterHashTagContest
для обработки всех деталей приложения, поэтому давайте посмотрим на инициализацию и конфигурацию для указанного класса.
class TwitterHashTagContest {
private $config ;
private $twitter_auth ;
private $app_details ;
private $result_tweets ;
public function __construct (){ $this -> config [ 'consumer_key' ] = 'consumer_key' ; $this -> config [ 'consumer_secret' ] = 'consumer_secret' ; $this -> config [ 'OAUTH_CALLBACK' ]= 'URL to index.php file' ; $this -> twitter_auth = new tmhOAuth ( $this -> config ); $this -> result_tweets = array ();
}
}
Мы можем начать настройку, указав в массиве customer_key, consumer_secret
и URL обратного вызова. Затем мы можем инициализировать библиотеку tmhOAuth
с помощью массива конфигурации. Наконец, мы инициализируем массив для хранения результатов по завершении конкурса.
Закончив детали конфигурации, теперь мы можем перейти к процессу авторизации в Twitter.
Шаг 4 — Генерация токенов запроса
Сначала мы должны получить токены запроса для инициализации процесса авторизации пользователя. Twitter предоставляет API-адрес oauth/request_token
для генерации токенов запросов. Давайте посмотрим на реализацию функции getRequestToken
определенной ранее.
public function getRequestToken () { $this -> twitter_auth -> request ( "POST" , $this -> twitter_auth -> url ( "oauth/request_token" , "" ), array (
'oauth_callback' => $this -> config [ 'OAUTH_CALLBACK' ]
));
if ( $this -> twitter_auth -> response [ "code" ] == 200 ) {
// get and store the request token $response = $this -> twitter_auth -> extract_params ( $this -> twitter_auth -> response [ "response" ]); $_SESSION [ "authtoken" ] = $response [ "oauth_token" ]; $_SESSION [ "authsecret" ] = $response [ "oauth_token_secret" ];
// redirect the user to Twitter to authorize $url = $this -> twitter_auth -> url ( "oauth/authenticate" , "" ) . '?oauth_token=' . $response [ "oauth_token" ]; header ( "Location: " . $url );
exit ;
}
return false ;
}
У нас уже есть экземпляр класса tmhOAuth
, инициализированный в конструкторе TwitterHashTagContest
. Мы должны использовать метод запроса tmhOAuth
для доступа к API Twitter. Эта функция принимает 3 аргумента, где первый определяет тип запроса (POST или GET), а следующие два аргумента определяют URL-адрес и параметры конечной точки API соответственно.
Мы используем URL-адрес API oauth/request_token
для генерации токенов. Ответ будет содержать токены запроса, а также статус запроса. Код 200 означает успешное завершение запроса, и мы продолжаем использовать функцию extract_params
для извлечения всех параметров из ответа в массив. Далее мы сохраняем oauth_token
и oauth_token_secret
в текущем сеансе.
Наконец, мы перенаправляем пользователя для авторизации, используя oauth/authenticate
или oauth/authorize
.
Мы можем использовать oauth/authenticate
или oauth/authorize
для управления процессом авторизации. oauth/authorize
требует от пользователя авторизации приложения по каждому запросу, даже если оно уже авторизовано для пользователя. oauth/authenticate
отличается от oauth/authorize
, избегая авторизации по каждому запросу. Мы должны установить флажок Разрешить использование этого приложения для входа в Twitter на вкладке «Настройки» нашего приложения Twitter, чтобы разрешить это.
После перенаправления пользователи могут войти в систему и авторизовать приложение, затем Twitter автоматически перенаправит запрос на URL-адрес обратного вызова. Затем мы должны сгенерировать пользовательские учетные данные запроса (токены доступа) путем проверки токенов запроса.
Шаг 5 — Генерация токенов доступа
Сначала мы должны отфильтровать ответ, полученный после авторизации приложения. Давайте посмотрим на обновленный код.
if ( isset ( $_GET [ 'action' ]) && $_GET [ 'action' ] == 'twitter' ){ $contest -> getRequestToken ();
} else if ( isset ( $_GET [ 'oauth_token' ])) { $oauth_token = isset ( $_GET [ 'oauth_token' ]) ? $_GET [ 'oauth_token' ] : '' ; $oauth_verifier = isset ( $_GET [ 'oauth_verifier' ]) ? $_GET [ 'oauth_verifier' ] : '' ; $response = $contest -> getRequestCredentials ( $oauth_verifier , $oauth_token ); $contest -> createUserSession ( $response );
} else { echo "<a href='?action=twitter'>LogIn with Twitter</a>" ;
}
Ответ от Twitter содержит oauth_token
и oauth_verifier
качестве параметров URL. Мы можем отфильтровать запрос, используя эти параметры, и вызвать функцию getRequestCredentials
чтобы сгенерировать токены доступа. Следующий код иллюстрирует реализацию getRequestCredentials
.
public function getRequestCredentials ( $oauth_verifier , $oauth_token ){ $this -> twitter_auth -> request ( "POST" , $this -> twitter_auth -> url ( "oauth/access_token" , "" ), array (
// pass a variable to set the callback
'oauth_verifier' => $oauth_verifier ,
'oauth_token' => $oauth_token )); $response = array ();
if ( $this -> twitter_auth -> response [ "code" ] == 200 ) { $response = $this -> twitter_auth -> extract_params ( $this -> twitter_auth -> response [ "response" ]);
}
return $response ;
}
Как мы делали ранее, запрос POST создается $this->twitter_auth
объекта $this->twitter_auth
для доступа oauth/access_token
API oauth/access_token
. Здесь мы oauth_verifier
и oauth_token
полученные из предыдущего запроса для генерации токенов доступа. Наконец, мы проверяем код ответа на соответствие 200 и возвращаем извлеченные компоненты объекта ответа.
Пожалуйста, имейте в виду, что мы реализуем путь успеха только с учетом объема данного руководства. В реальной реализации нам потребуется реализовать часть обработки ошибок, чтобы отфильтровать и другие коды ответов.
После этого мы можем использовать токены доступа и предоставлять пользователям возможность твитнуть. Мы передаем ответ функции, называемой createUserSession
, для добавления деталей в сеанс браузера и инициализации экрана сообщений.
В реальной реализации нам необходимо хранить токены доступа и данные о вошедшем в систему пользователе в базе данных для извлечения токенов. Здесь мы используем браузерные сессии вместо того, чтобы упростить учебник.
Вывод
Продвижение приложений через конкурсы в социальных сетях — отличный подход. Твиттер — одна из самых простых платформ для проведения соревнований, поэтому мы начали с создания хештега в Твиттере.
До сих пор мы реализовали начальные шаги для создания приложения Twitter и аутентификации пользователей в нашей системе. В следующей части мы будем завершать реализацию этого конкурса, создавая возможности твитов для пользователей и генерируя результаты.
До тех пор, дайте нам знать ваши мысли об этой части!