Интеграция блога tumblr с веб-сайтом

Я хотел бы интегрировать мой канал tumblr на мой сайт. Кажется, что у tumblr есть API для этого, но я не совсем уверен, как его использовать. Из того, что я понимаю, я запрашиваю страницу, и tumblr возвращает xml-файл с содержимым моего блога. Но как мне сделать этот xml значимым html? Должен ли я анализировать его с помощью php, превращая соответствующие теги в заголовки и так далее? Я говорю себе, что это не может быть больно. У кого-нибудь есть идеи?

4 ответов


можно использовать PHPTumblr, оболочка API, написанная на PHP, которая делает получение сообщений легким.


есть javascript include, который делает это сейчас, доступный из Tumblr (вам нужно Войти, чтобы увидеть его):http://www.tumblr.com/developers

это заканчивается чем-то вроде этого:

<script type="text/javascript" src="http://{username}.tumblr.com/js"></script>

если вы идете в http://yourblog.tumblr.com/api/read где "yourblog" должен быть заменен именем вашего блога (будьте осторожны, если вы размещаете свой блог Tumblr в пользовательском домене, как я, используйте это), вы увидите XML-версию своего блога. Это очень грязно для меня в Firefox по какой-то причине, поэтому я использую Chrome, попробуйте пару разных браузеров, это поможет увидеть XML-файл хорошо сформированным, отступом и т. д.

как только ваш взгляд на XML-версию вашего блог, обратите внимание, что каждый пост имеет кучу данных в ориентации attribute="value". Вот пример из моего блога:

<post id="11576453174" url="http://wamoyo.com/post/11576453174" url-with-slug="http://wamoyo.com/post/11576453174/100-year-old-marathoner-finishes-race" type="link" date-gmt="2011-10-17 18:01:27 GMT" date="Mon, 17 Oct 2011 14:01:27" unix-timestamp="1318874487" format="html" reblog-key="E2Eype7F" slug="100-year-old-marathoner-finishes-race" bookmarklet="true">

Итак, есть много способов сделать это, я покажу вам тот, который я использовал, и опустите мой код в нижней части этого сообщения, чтобы вы могли просто адаптировать его к своим потребностям. Обратите внимание на часть type="link"? Или id= "11576453174"? Это те ценности, которые вы собираетесь использовать для извлечения данных в php-скрипт.

здесь пример:

<!-- The Latest Text Post -->
<?php
    echo "";
    $request_url = "http://wamoyo.com/api/read?type=regular"; //get xml file
    $xml = simplexml_load_file($request_url); //load it
    $title = $xml->posts->post->{'regular-title'}; //load post title into $title
    $post = $xml->posts->post->{'regular-body'}; //load post body into $post
    $link = $xml->posts->post['url']; //load url of blog post into $link
    $small_post = substr($post,0,350); //shorten post body to 350 characters
    echo // spit that baby out with some stylish html
        '<div class="panel" style="width:220px;margin:0 auto;text-align:left;">
            <h1 class="med georgia bold italic black">'.$title.'</h1>'
            . '<br />' 
            . '<span>'.$small_post.'</span>' . '...' 
            . '<br /></br><div style="text-align:right;"><a class="bold italic blu georgia" href="'.$link.'">Read More...</a></div>
        </div>
        <img style="position:relative;top:-6px;" src="pic/shadow.png" alt="" />
    '; 
?>

Итак, это на самом деле довольно просто. PHP-скрипт здесь помещает данные (например, заголовок сообщения и текст сообщения) из xml-файла в переменные php, а затем повторяет эти переменные вместе с некоторым html, чтобы создать div, в котором есть фрагмент из сообщения в блоге. Это один из самых последних текстовых сообщений. Не стесняйтесь использовать его, просто зайдите и измените этот первый url на свой собственный блог. А затем выберите любые значения, которые вы хотите из вашего xml-файла.

для пример Допустим, вы хотите, не самый последний, но второй самый последний "фото" пост. Вы должны изменить request_url на это:

$request_url = "http://wamoyo.com/api/read?type=photo&start=1"

или, скажем, вы хотите самый последний пост с определенным тегом

$request_url = "http://wamoyo.com/api/read?tagged=events";

или, скажем, вы хотите конкретный пост, просто используйте id

$request_url = "http://wamoyo.com/api/read?id=11576453174";

так все, что вам нужно сделать, это приколоть ? с любым параметром и используйте&, если у вас есть несколько параметров.

если вы хотите сделать что-нибудь поинтереснее, вам понадобятся документы api tumblr здесь:http://www.tumblr.com/docs/en/api/v2

надеюсь, это было полезно!


есть два основных способа сделать это. Во-первых, вы можете проанализировать xml, вытащив содержимое из тегов, которые вам нужны (несколько способов сделать это в зависимости от того, используете ли вы Sax или DOM parser). Это быстрое и грязное решение.

вы также можете использовать преобразование XSLT чтобы преобразовать источник xml непосредственно в html, который вы хотите. Это более сложно, так как вам нужно изучить синтаксис для шаблонов xslt, который немного подробен.