[xmlrpc 테스트] 나의 새 타이틀

이것은 나의 새 포스트의 바디입니다. (테스트중)

—————————————————————————–

python을 이용하여 자동으로 포스팅을 하기 위한 라이브러리를 테스트 한다.
관련글 https://python-wordpress-xmlrpc.readthedocs.org/en/latest/examples/posts.html

설치방법은..
$ sudo pip install python-wordpress-xmlrpc
또는
$ sudo easy_install python-wordpress-xmlrpc

구분선 위까지가 실제로 코드를 통해 자동 작성된 내용임.

1) Client로 로그인을 하고
2) Post 객체 내용을 작성해서
3) NewPost() 함수를 호출하면 임시글 상태로 등록됨
4) EditPost() 함수를 이용하여 발행(publish) 상태로 변경하면 보인다

from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods.posts import GetPosts, NewPost, EditPost
from wordpress_xmlrpc.methods.users import GetUserInfo

wp = Client('https://tonyne.jeju.onl/xmlrpc.php','아이디','패스워드')
wp.call(GetPosts())
'''
[Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/wordpress_xmlrpc/wordpress.py", line 51, in __repr__
    return '<%s: %s>' % (self.__class__.__name__, str(self).encode('utf-8'))
UnicodeEncodeError: 'ascii' codec can't encode character u'uc758' in position 6: ordinal not in range(128)
'''
wp.call(GetUserInfo())
# ==> <WordPressUser: tonyne>

post = WordPressPost()
post.title = "<xmlrpc 테스트> 나의 새 타이틀"
post.content = "이것은 나의 새 포스트의 바디입니다. (테스트중)"
post.terms_names = {
   'post_tag':['test','firstpost','테스트'],
   'category':['잡동사니']
}
post.id = wp.call(NewPost(post))

post.post_status = 'publish'
wp.call(EditPost(post.id, post))
# ==> True

위 샘플에서 GetPosts() 호출시 UnicodeEncodeError가 발생한다.
해결방법은 모르겠다. 일단 업로드용이니깐 나중에 찾아보자.

%d 블로거가 이것을 좋아합니다: