0

Android用のYMクライアントを開発しています。openymsg0.5 API を含めました。プログラムを実行すると、次のエラーが表示されます。

06-29 11:32:04.097: ERROR/InputThread(11206): org.openymsg.network.LoginRefusedException: Login Failed, unable to retrieve stage 2 url
06-29 11:32:04.097: ERROR/InputThread(11206):     at org.openymsg.network.Session.yahooAuth16Stage2(Session.java:2048)
06-29 11:32:04.097: ERROR/InputThread(11206):     at org.openymsg.network.Session.yahooAuth16Stage1(Session.java:1955)
06-29 11:32:04.097: ERROR/InputThread(11206):     at org.openymsg.network.Session.receiveAuth(Session.java:1848)
06-29 11:32:04.097: ERROR/InputThread(11206):     at org.openymsg.network.InputThread.processPayload(InputThread.java:139)
06-29 11:32:04.097: ERROR/InputThread(11206):     at org.openymsg.network.InputThread.process(InputThread.java:129)
06-29 11:32:04.097: ERROR/InputThread(11206):     at org.openymsg.network.InputThread.run(InputThread.java:71)

これが主なエラーです:

LoginRefusedException: Login Failed, unable to retrieve stage 2 url

この質問は以前に尋ねられましたが、私に役立つ答えが見つかりませんでした。このエラーに対処する方法について何か考えがある人はいますか? openymsg のテスト コードとコード ベースを確認しましたが、すべて問題ないようです。

確認したところ、Javaアプリケーションとしては正常に動作しますが、Androidの一部として使用するとログインエラーが発生します。次のようにセッションを作成しています

Session session = new Session();
session.addSessionListener(new SessionListenerClass());
try{
    session.login("username", "password");
    if (session!=null 
        && session.getSessionStatus()== SessionState.LOGGED_ON) 
    {
        System.out.println("It logged on!!!!!!!");
    }
}

セッションリスナー:

public class SessionListenerClass extends SessionAdapter
{

    @Override
    public void messageReceived(SessionEvent event)
    {
        // TODO Auto-generated method stub
        super.messageReceived(event);
    }

    @Override
    public void notifyReceived(SessionNotifyEvent event)
    {
        // TODO Auto-generated method stub
        super.notifyReceived(event);
    }

    @Override
    public void newMailReceived(SessionNewMailEvent event)
    {
        // TODO Auto-generated method stub
        super.newMailReceived(event);
    }

    @Override
    public void errorPacketReceived(SessionErrorEvent event)
    {
        // TODO Auto-generated method stub
        super.errorPacketReceived(event);
    }

    @Override
    public void connectionClosed(SessionEvent event)
    {
        // TODO Auto-generated method stub
        super.connectionClosed(event);
    }

}
4

1 に答える 1

0

使用しているライブラリはjYMSGライブラリに基づいており、ドキュメントがはるかに優れています。

スローされた例外のドキュメントであるLoginRefusedExceptionには、次のように記載されています。

サーバーから指定されたステータスコードを返します。これは、StatusConstantsで指定された値の1つになります。値は、不明なアカウントの場合はSTATUS_BADUSERNAME、不正なパスワード(またはその他の障害)の場合はSTATUS_BADになります。

したがって、それが「何か他のもの」なのか、それとも単に間違ったユーザー名/パスワードなのかを確認できます。


さて、これはライブラリのバグであると思われます。これは、プロジェクトリーダーの1人が問題について知っていることを示していますしかし、これがすぐに修正されるかどうかはわかりません。

また、プロジェクトが「アルファ」としてマークされていることにも注意してください。この問題を修正する新しいリリースにご期待ください。

于 2011-06-29T20:23:52.447 に答える