1

ステータス メッセージの更新に関する Lotus Connection API のマニュアル (ソース: http://www-10.lotus.com/ldd/lcwiki.nsf/dx/Updating_a_status_message_ic301 ) を読みましたが、その方法に関するサンプル スクリプトは見つかりませんでした。ユーザー ステータス メッセージを更新しますか?

基本的な Ruby スクリプトを作成しました。下記参照:

url = "https://w3-connections.ibm.com/profiles/atom/mv/theboard/entry/status.do?userid=#{username}"
auth = 'Basic ' + Base64.encode64( "#{username}:#{password}" ).chomp
message = '<entry xmlns="http://www.w3.org/2005/Atom">
<title type="text">Hi!</title>
<category term="entry" scheme="http://www.ibm.com/xmlns/prod/sn/type" />
<category term="status" scheme="http://www.ibm.com/xmlns/prod/sn/message-type" />
<content type="text">Morning! Have a nice day ahead!</content>
</entry>'
resource = RestClient::Resource.new(url, { :headers => { 'Authorization' => auth } } )
response = resource.put message, :content_type => 'application/atom+xml'
puts response.inspect

RubyでHTTP認証にRestClient(rest-client (1.6.7))を使用しています。しかし、それは私が期待したようには機能しませんでした。エラーは「...400 Bad Request (RestClient::BadRequest)」と表示されます

足りないものはありますか?皆さんからの助けやアイデアは大歓迎です。ありがとう!

4

1 に答える 1

1

助けと提案をしてくれてありがとう。1時間ほど悩んだ末、無事完成。動作する更新されたコードは次のとおりです。

class IbmConnections

  def initialize(username, password)
    @username = username
    @password = password
  end

  def post_status_message
    require 'rest_client'
    atom  = "
    <entry xmlns='http://www.w3.org/2005/Atom'>
    <title type='text'>Hi</title>
    <category term='entry' scheme='http://www.ibm.com/xmlns/prod/sn/type' />
    <category term='status' scheme='http://www.ibm.com/xmlns/prod/sn/message-type' />
    <content type='text'>Morning! Have a nice day ahead!</content>
    </entry>"

    begin
      url  = "https://w3-connections.ibm.com/profiles/atom/mv/theboard/entry/status.do"
      resource = authenticate url, @username, @password
      response = resource.put atom, :content_type => 'application/atom+xml'
      if response.empty?
        return {:success => 'true', :message => "Successfully update your status!", :data => atom}
      else
        return {:success => 'false', :message => "Error occurred while posting to Connections! <br /> Please contact the administrator.", :data => atom}
      end
    rescue => error
      logger.debug "Error: IbmConnections.post_it_connections(2)"
      logger.debug error.inspect
      return {:success => 'false', :message => "Error occurred while posting to Connections! <br /> Please contact the administrator.", :data => error.inspect}
    end
  end

  def authenticate url, username, password
    auth = 'Basic ' + Base64.strict_encode64("#{username}:#{password}")
    RestClient::Resource.new(url, { :headers => { 'Authorization' => auth } } )
  end
end
于 2013-04-30T05:22:39.300 に答える