2016-11-17 5 views
1

Tumblr API를 사용하여 보조 블로그에 글을 올리려고합니다. official Tumblr client은 Python 2 전용이므로 Tumblpy 파이썬 패키지를 사용하고 있으며 어쨌든 버려진 것 같습니다.Tumblr API가 보조 블로그에 게시 됨

나는 앱을 승인했고 나는 모든 키를 가져온 Tumblr console을 살펴 보았다. 나는 그걸로 놀기 시작했고 나는 내 기본 블로그에 성공적으로 게시 할 수 있지만 보조 (보조물은 항상 {TumblpyError} 404 'There was an error making your request.' 오류가 발생 함) 게시물을 게시 할 수 있음을 알았습니다.

내가 코드를하려고했는데되어

from tumblpy import Tumblpy 


def post_tumblr(
     url, 
     comment='', 
     tags='', 
     **kwargs 
): 
    t = Tumblpy(
     APP_KEY, APP_SECRET, 
     OAUTH_TOKEN, OAUTH_TOKEN_SECRET 
    ) 

    blog_url = t.post('user/info') 
    blog_url = blog_url['user']['blogs'][0]['url'] # POSTING TO PRIMARY BLOG WORKS 
    # blog_url = blog_url['user']['blogs'][1]['url'] # CANNOT POST TO SECONDARY BLOG? 

    post_url = t.post(
     'post', 
     blog_url=blog_url, 
     params={ 
      'type': 'video', 
      'embed': url, 
      'caption': comment, 
      'tags': tags, 
     } 
    ) 

    return True 

는 텀블러의 API에 보조 블로그에 게시에 일부 잡기가 있습니까?

답변

1

이것은 흥미로운 것입니다. 가장 먼저 주목해야 할 것은 Tumblr API에서 blog.url은 스키마 : http:// 또는 https://을 포함한 전체 URL입니다. 그러나 /blog/{blog-identifier}/* API 요청의 경우 은 전체 URL을 허용하지 않으며 호스트 이름은 example.com 또는 demo.tumblr.com입니다.

이 정보가 주어지면 요청의이 작동하지 않아서 Tumblpy에 대한 코드를 조금만 확인했습니다. Tumblpy가 호스트 이름을 제외한 모든 것을 제거하여 {blog-identifier}에 대한 전체 URL을 허용한다는 것이 밝혀졌습니다. 그러나 URL은 http:// URL 만 사용하고 처럼 https:// URL은 사용할 수 없습니다.

SSL을 사용하는 블로그가있는 경우 url 필드는 https:// 링크가되며 Tumblpy가 올바르게 처리하지 못합니다. 나는 이것이 귀하의 보조 블로그의 경우라고 가정합니다. 그 블로그에 대해 settings page에서 확인할 수 있습니다.

이 경우를 가정하면 최상의 수정은 Tumblpy.post()을 호출하기 전에 직접 호스트 이름을 구성하는 것입니다. user.blogs[i].name + ".tumblr.com"을 사용해주세요. 또는 url에서 호스트 이름을 파싱 할 수도 있습니다. 어느 접근 방식이든 효과가 있습니다.