Интеграция блога 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, который немного подробен.