Развернуть укороченную ссылку Tumblr

У меня есть ссылка на Tumblr, например: http://tumblr.com/XXXXXXXX.

Для связи с их API мне нужно имя хоста блога, поэтому мне нужно расширить ссылку до полной ссылки. Что-то вроде: http://blogname.tumblr.com/post/XXXXXX

Как я могу расширить укороченную ссылку на tumblr?


person Aron Woost    schedule 08.08.2011    source источник


Ответы (2)


В API Tumblr я не верю, что это возможно, как упоминал Дерек Готфрид. Если вы используете его в своем приложении или сервисе, вы можете попробовать просмотреть заголовки.

Например, в Python вы можете использовать urllib2.

import urllib2
tumb = urllib2.urlopen('http://tumblr.com/XXXXXXXX')
print tumb.url

В PHP вы можете использовать метод get_headers.

$url = 'http://tumblr.com/XXXXXXXX'
print_r(get_headers($url))
person phwd    schedule 08.08.2011
comment
Спасибо за ответ. Я ответил в треде. Я мог бы проверить серверные решения, хотя я бы предпочел для этого прямой API. - person Aron Woost; 09.08.2011

Вот еще один способ сделать это в Ruby. Он должен следовать перенаправлению tumblr. С http://tmblr.co/XXXXX на http://www.tumblr.com и, наконец, на расширенный URL-адрес. Из документации Net::HTTP:

require 'net/http'
require 'uri'

def get_permalink(uri_str, limit=5)
  # You should choose better exception.
  raise ArgumentError, 'HTTP redirect too deep' if limit == 0

  response = Net::HTTP.get_response(URI.parse(uri_str))
  case response
    when Net::HTTPOK then uri_str
    when Net::HTTPMovedPermanently
      get_permalink(response['location'], limit-1)
    when Net::HTTPFound
      get_permalink(response['location'], limit-1)
  end
end

Надеюсь, это поможет кому-то

person Dida    schedule 04.12.2012