워드프레스 API를 통해서 블로그 자동화를 구성하고 있습니다. 잘 동작하던 파이썬 스크립트를 조금 수정했는데 아래와 같은 "OSError: unsupported XML-RPC protocol"이라는 에러 메시지를 토해내면서 수행되지 않는 것입니다.
처음에 가장 먼저 의심했던 것은 패키지 설치가 덜 되었거나 필요한 모듈이 없는게 아닌가 의심했습니다. 하지만 살펴보니 의외로 간단하게 해결할 수 있었습니다.
문제의 에러 메시지
Traceback (most recent call last): File "./getPosts.py", line 28, in <module> getPosts(auths[0], auths[1], auths[2]) File "./getPosts.py", line 14, in getPosts client = Client(url, id, pw) File "/home/user/.local/lib/python3.8/site-packages/wordpress_xmlrpc/base.py", line 23, in __init__ self.server = xmlrpc_client.ServerProxy(url, allow_none=True, transport=transport) File "/usr/lib/python3.8/xmlrpc/client.py", line 1419, in __init__ raise OSError("unsupported XML-RPC protocol") OSError: unsupported XML-RPC protocol |
문제의 원인
살펴보니 getPosts API 호출을 위해서 사용자 인증을 할 때 넣어주는 URL의 형식이 잘못된 것이었습니다.
def getPosts(url, id, pw):
client = Client(url, id, pw)
postList = client.call(posts.GetPosts())
문제 해결
URL 형식은 단순한 웹페이지의 주소 뿐만 아니라 프로토콜까지 넣어줘야 하는데, 제가 이것을 누락했던 것이었습니다.
잘못된 사용 예 | client = Client( "www.webpage.com", "id", "pw") |
올바른 사용 예 | client = Client( "https://www.webpage.com", "id", "pw") |
링크
아래는 워드프레스 API를 통해 블로그 자동화를 구현하면서 만났던 문제들에 대해서 작성한 글들입니다.
2022.05.18 - [워드프레스] - 워드프레스 API "PHP의 XML 확장이 가능하지 않습니다. 호스팅 회사에게 연락하여 PHP의 XML 확장을 활성화하세요."
2022.05.18 - [워드프레스] - 워드프레스 Error ( -32300 ) : transport error - HTTP status code was not 200 해결 방법
2022.05.19 - [워드프레스] - 워드프레스 API를 통한 자동 글쓰기 예제 (파이썬 버전)
이상입니다.
'웹페이지 운영 > 워드프레스' 카테고리의 다른 글
주소를 찾을 수 없음. 메일 주소를 찾을 수 없거나 해당 주소에서 메일을 받을 수 없어 메일이 전송되지 않았습니다. (0) | 2022.06.02 |
---|---|
워드프레스 글 목록을 파이썬으로 가져오는 방법 (0) | 2022.05.21 |
워드프레스 API 실행을 위해서 xmlrpc 활성화 시키는 방법 (0) | 2022.05.20 |
워드프레스 API로 getPosts 실행시 AttributeError: module 'collections' has not attribute 'Iterable' 에러 발생시 조치 방법 (0) | 2022.05.19 |
워드프레스 API를 통한 자동 글쓰기 예제 (파이썬 버전) (1) | 2022.05.19 |
워드프레스 Error ( -32300 ) : transport error - HTTP status code was not 200 해결 방법 (0) | 2022.05.18 |
워드프레스 API "PHP의 XML 확장이 가능하지 않습니다. 호스팅 회사에게 연락하여 PHP의 XML 확장을 활성화하세요." (0) | 2022.05.18 |