

Amazonで購入したsoracomのSIMをAPIで登録しようとたのですが上手く行きません。  
soracom-sdk-rubyのregister_subscriberを実行するとArgumentErrorが発生します。

[code]

    #<ArgumentError: wrong number of arguments (given 2, expected 0)>
    
[/code]

次の様なクラスを作成し、register_simでSDKのregister_subscriberメソッドをコールしてテストしました。

[code]

    class SimDevice
      def client
        @soracom ||= Soracom::Client.new(
          auth_key_id: SORACOM_AUTH_KEY_ID,
          auth_key: SORACOM_AUTH_KEY_SECRET
        )
      end
    
      def register_sim
        imsi = 'XXXXXXXXXXXXXXX'
        registration_secret = 'XXXXX'  # PASSCODE ??
        client.register_subscriber(imsi, registration_secret)  # Error
      end
    end
    
[/code]

質問が２点あります。  
１．APIドキュメントに書いてあるregistrationSecretは、SIMカードに記載されているPASSCODEで良いか？

２．もし１が合っている場合、register_subscriberメソッドをどの様に利用すればよいか？

ご存知の方がいましたらよろしくお願いします。

（参考）  
・soracom-sdk-ruby  
<https://github.com/soracom/soracom-sdk-ruby>

・APIドキュメント  
<https://dev.soracom.io/jp/docs/api/>


CC BY-SA 3.0
2016-11-13T11:12:42.503
30376
2016-11-13T12:11:13.640
19545
question
ruby soracom
soracom-sdk-rubyのregister_subscriberが実行できない


  1. はその通りです。2. について回答します。

キーワード引数を使ってメソッドが定義されていますので、メソッドの呼び出しの際に、変数名を以下のように明示する必要があります。

[code]

    client.register_subscriber(imsi: imsi, registration_secret: registration_secret)
    
[/code]

<https://github.com/soracom/soracom-sdk-
ruby/blob/master/lib/soracom/client.rb#L81>

ご参考までに、提示されたサンプルコードを単独で動作するように少しだけ手を加えてみました。

[code]

    require 'soracom'
    class SimDevice
      def client
        @soracom ||= Soracom::Client.new(
          auth_key_id: SORACOM_AUTH_KEY_ID,
          auth_key: SORACOM_AUTH_KEY_SECRET
        )
      end
    
      def register_sim
        imsi = 'XXXXXXXXXXXXXXX'
        registration_secret = 'XXXXX'
        client.register_subscriber(imsi: imsi, registration_secret: registration_secret)or
      end
    end
    
    p SimDevice.new().register_sim # => {"code"=>"SEM0001", "message"=>"No such resource found"}
    
[/code]

正しいIMSIとパスコードを与えれば動作すると思われます。


CC BY-SA 3.0
2016-11-13T12:11:13.640
30378
2016-11-13T12:11:13.640
7421
30376
answer