Last active
May 19, 2018 14:18
-
-
Save diffshare/f7899c48dca9988942c14d7126cefd29 to your computer and use it in GitHub Desktop.
replace-from-cybozu-to-redmine.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# $ rails r ./replace-from-cybozu-to-redmine.rb | |
# | |
# RailsのGemfileで以下が必要 | |
# require "rest-client" | |
# require "oauth" | |
consumer_key = "" # cybozuliveの開発者登録 | |
consumer_secret = "" | |
consumer = OAuth::Consumer.new( | |
consumer_key, | |
consumer_secret, | |
:site => "https://api.cybozulive.com", | |
:request_token_url => "https://api.cybozulive.com/oauth/initiate", | |
:access_token_url => "https://api.cybozulive.com/oauth/token" | |
) | |
x_auth_username = "" # 自分のID/PW | |
x_auth_password = "" | |
access_token = consumer.get_access_token( | |
nil, | |
{}, | |
{ | |
:x_auth_mode => "client_auth", | |
:x_auth_username => x_auth_username, | |
:x_auth_password => x_auth_password, | |
} | |
) | |
RestClient.add_before_execution_proc do |req, params| | |
access_token.sign! req | |
end | |
#p access_token | |
response = RestClient.get "https://api.cybozulive.com/api/group/V2" | |
group = Hash.from_xml(response.body).with_indifferent_access | |
id = group[:feed][:entry][:id][6..-1] | |
response = RestClient.get "https://api.cybozulive.com/api/board/V2?group=#{id}&max-results=100" | |
board_feed = Nokogiri.XML response | |
# 破壊的テストなので、よろしく | |
#Board.destroy_all | |
#Message.destroy_all | |
board = Project.first.boards.build | |
board.name = "サイボウズ" | |
board.description = "異色だよ" | |
board.save | |
board_feed.css("entry").each do |entry| | |
board_id = entry.at("id").text | |
id = board_id.split(":")[2] | |
message = board.messages.new | |
message.subject = entry.at(:title).text | |
message.content = entry.at(:summary).text | |
unless message.save | |
p message.errors.messages | |
raise :error | |
end | |
comment_response = RestClient.get "https://api.cybozulive.com/api/comment/V2?entry=#{board_id}&max-results=100" | |
comment_feed = Nokogiri.XML comment_response.body | |
comment_feed.css("entry").each do |comment| | |
reply = board.messages.new | |
reply.subject = "test" | |
reply.parent = message | |
reply.content = comment.at(:summary).text | |
reply.content = "test" if reply.content.blank? | |
next if reply.board.blank? | |
p reply | |
unless reply.save | |
p reply.errors.messages | |
raise :error | |
end | |
end | |
p board | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment