Let’t EncryptでSSL化したWordPressのサイトにRubyPressで投稿したら、以下のエラーになった。
省略/vendor/bundle/ruby/2.4.0/gems/xmlrpc-0.3.0/lib/xmlrpc/client.rb:509:in `do_rpc': HTTP-Error: 301 Moved Permanently (RuntimeError)
301と言う事はリダイレクトされているっぽい。
SSL化したせいでリダイレクトされているとしたら、HTTPでアクセスしてHTTPSにリダイレクトされているのではと予想。
RubyPressのパラメータではホスト名しか渡してないから、SSLを使用するパラメータが有りそうとソースを見ると
def initialize(options = {})
{
:port => 80,
:ssl_port => 443,
:use_ssl => false,
:host => nil,
:path => '/xmlrpc.php',
:username => nil,
:password => nil,
:default_post_fields => %w(post terms custom_fields),
:debug => false,
:http_user => nil,
:http_password => nil,
:retry_timeouts => false,
:timeout => 30,
:cookie => nil
}.merge(options).each{ |opt| self.send("#{opt[0]}=", opt[1]) }
self
end
と有り、「use_ssl」というドンピシャのパラメータがあった。
という訳で、これにtrueを設定して問題なく投稿出来るようになった。
コメント