×
HeadHunter and Superjob rezume updater on Ruby on Rails (21 авг 2017)

Практикуемся в написании кода под rails.

Вопрос Интеграция вашего сайта с Twitter

Больше
6 года 7 мес. назад - 6 года 7 мес. назад #1 от Aleksej
Aleksej создал эту тему: Интеграция вашего сайта с Twitter
Twitter представляет собой отличный инструмент для всех владельцев веб-сайтов, и вам обязательно стоит попробовать интегрировать его в ваш сайт... в том случае, конечно, если вы заинтересованы в привлечении новых посетителей и увеличении трафика. Давайте рассмотрим сейчас варианты интеграции с Twitter.

Получение числа читателей в системе Twitter

Часто на сайтах отображается число follow-еров в системе Twitter. Это достаточно просто сделать. Первое, что нужно сделать, это внести следующую функцию:
function get_followers($twitter_id){
    $xml=file_get_contents('http://twitter.com/users/show.xml?screen_name='.$twitter_id);
    if (preg_match('/followers_count>(.*)</',$xml,$match)!=0) {
        $tw['count'] = $match[1];
    }

    return $tw['count'];
}
Как только вы внесёте функцию, вам нужно вызвать ее, как показано ниже:
$nb =  get_followers('phpsnippets');
echo "PHP Snippets already have ".$nb." followers!";

Получение последнего статуса в системе Twitter


Используя PHP и cURL, мы с легкостью можем получить последний статус конкретного пользователя в Twitter. Как только мы получаем статус, нам нужно отобразить его в блоге. Посмотрите, как это реализовано в подвале блога WPRecipes:
function get_status($twitter_id, $hyperlinks = true) {
    $c = curl_init();
    curl_setopt($c, CURLOPT_URL, "http://twitter.com/statuses/user_timeline/$twitter_id.xml?count=1");
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    $src = curl_exec($c);
    curl_close($c);
    preg_match('/<text>(.*)<\/text>/', $src, $m);
    $status = htmlentities($m[1]);
    if( $hyperlinks ) $status = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", '<a href="%5C%22%5C%5C0%5C%22">\\0</a>', $status);
    return($status);
}

Функцией очень просто воспользоваться:
echo get_status('catswhocode');

Ссылка на обновление статуса без проблем с кодировкой

Многие веб-сайты и блоги показывают нам, как можно создать ссылку, посредством которой можно обновить статус в системе Twitter. Но, к сожалению, большинство веб-сайтов не объясняют, что нужно делать, чтобы избежать проблем с кодировкой, пробелами, а также специальными символами.
<a href="http://twitter.com?status=@catswhocode Hi Jean, how are you?">Tweet!</a>

Итак, где же тут что изменилось? Все очень просто: заметьте, что ссылка ведёт не на www.twitter.com , а на twitter.com , без «www».

Получение числа перепостеров для конкретных страниц

Большинство блоггеров используют виджет Tweetmeme для отображения числа перепостеров. Знали ли вы, что у Tweetmeme также есть АПИ, которые вы можете использовать для получения ссылки, которую опубликовал кто-то еще из пользователей?

Следующая функция позволит вам получить число перепостеров конкретной ссылки:
function tweetCount($url) {
    $content = file_get_contents("http://api.tweetmeme.com/url_info?url=".$url);
    $element = new SimpleXmlElement($content);
    $retweets = $element->story->url_count;
    if($retweets){
        return $retweets;
    } else {
        return 0;
    }
}
Воспользоваться функцией не составит труда:
echo tweetCount('http://www.catswhocode.com');

Учтите, что АПИ Twitter’а также предлагает различные варианты реализации того же метода.

Тестирование отношений между двумя друзьями в системе

Если вам хочется знать, читает ли ваши твиты конкретный пользователь, то вам нужно воспользоваться АПИ Twitter. Этот сниппет покажет вам соответствующий результат, если два пользователя на линиях кода 18 и 19 поддерживают связь. В противном случае, результат будет отрицательным.
/* makes the request */
function make_request($url) {
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

/* gets the match */
function get_match($regex,$content) {
    preg_match($regex,$content,$matches);
    return $matches[1];
}

/* persons to test */
$person1 = 'phpsnippets';
$person2 = 'catswhocode';

/* send request to twitter */
$url = 'https://api.twitter.com/1/friendships/exist';
$format = 'xml';

/* check */
$persons12 = make_request($url.'.'.$format.'?user_a='.$person1.'&user_b='.$person2);
$result = get_match('/<friends>(.*)<\/friends>/isU',$persons12);
echo $result; // returns "true" or "false"

Короткие ссылки для Twitter


Если вы являетесь пользователем системы Twitter, то вам наверняка известно, что вы не можете публиковать сообщения длиннее 140 символов. Во избежание данной проблемы, вам нужно использовать укороченные ссылки. Существует множество соответствующих сервисов для укорачивания ссылок а сети. TinyUrl.com является одним из них. Он, конечно, предлагает не самые короткие ссылки, но,тем не менее, данный сервис очень неплох.

Следующая функция берёт длинную ссылку в качестве параметра и возвращает вам укороченную ссылку, используя сервис TinyUrl.
function getTinyUrl($url) {
    return file_get_contents("http://tinyurl.com/api-create.php?url=".$url);
}

Укороченные ссылки в Bit.ly

В предыдущей записи о сниппетах было показано, как укорачивать ссылки посредством TinyUrl.com. Это, конечно, удобно и полезно, но некоторые предпочитают использовать сервис bit.ly. С использованием PHP для получения укороченной ссылки не возникнет никаких проблем.
function bitly($url) {
    $content = file_get_contents("http://api.bit.ly/v3/shorten?login=YOURLOGIN&apiKey=YOURAPIKEY&longUrl=".$url."&format=xml");
    $element = new SimpleXmlElement($content);
    $bitly = $element->data->url;
    if($bitly){
        return $bitly;
    } else {
        return '0';
    }
}

Для того чтобы воспользоваться функцией, используйте следующий код:
echo bitly("http://www.catswhocode.com");
Последнее редактирование: 6 года 7 мес. назад от Aleksej.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.