0

次のような Tumblr リンクがあります: http://tumblr.com/XXXXXXXX

API と通信するには、ブログのホスト名が必要なので、リンクを完全なリンクに展開する必要があります。次のようなもの: http://blogname.tumblr.com/post/XXXXXX

tumblr 短縮リンクを展開するにはどうすればよいですか?

4

2 に答える 2

0

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

それが誰かを助けることを願っています

于 2012-12-04T23:13:04.907 に答える
0

Tumblr API 内では、 Derek Gottfridが述べたように、それが可能だとは思いません。アプリまたはサービス内で使用している場合は、ヘッダーを確認してみてください。

たとえば、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))
于 2011-08-08T21:27:04.653 に答える