Развернуть Tumblr сокращенную ссылку - PullRequest
0 голосов
/ 08 августа 2011

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

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

Как развернуть сокращенную ссылку Tumblr?

Ответы [ 2 ]

0 голосов
/ 05 декабря 2012

Вот еще один способ сделать это в Ruby. Нужно следовать перенаправлению Tumblr. От http://tmblr.co/XXXXX до http://www.tumblr.com/XXXXX и, наконец, до расширенного 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

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

0 голосов
/ 09 августа 2011

В 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))
...