ローカルサーバーにejabberdをインストールしました。これは、その機能のためにスパークでテストされ、うまくいきました。今、私はアンドロイドアプリを通じて新しいユーザーを追加したいと思います。Smackでejabberdに新しいユーザーを追加するandroid api
sparkで新しいユーザーを追加しようとしましたが、うまくいきました。私が与えたフィールドはuesrname
,password
,confirm password
,server
です。私はそれが次のエラーを与えたAndroidアプリでsmack apiを使用してそれを実行しようとしたとき、しかし:
org.jivesoftware.smack.XMPPException$XMPPErrorException: XMPPError: forbidden - auth
私はピシャリで新しいアカウントを作成するには、以下の使用していたコードで見られ、createAccount()を使用していました。
AccountManager accountManager = AccountManager.getInstance(conn1);
try {
accountManager.createAccount("tryuser", "qwerty");
Log.i("log", "created user successfully");
} catch (SmackException.NoResponseException e) {
e.printStackTrace();
} catch (XMPPException.XMPPErrorException e) {
e.printStackTrace();
} catch (SmackException.NotConnectedException e) {
e.printStackTrace();
}
それがsupportsAccountCreation()して、新しいアカウントの作成をサポートしている場合、私がチェックしていると、それはtrue
を返しました。
私はregister
のルールをejabberdサーバーのallow all
に変更しました。私はスパークからアカウントを作成することができるので、それは問題がないと思うが、打ち間違いを得る。
私はこのトピックに関連する次のような質問を見ましたが、運はありません。
誰もがこれを解決する方法上の任意の提案を持っていますか?
データベースにレコードを挿入して直接ユーザーを作成することができます。 Webサービスを作成し、ユーザーデータをサーバーに送信します。私は長いことオープンファイアでこれをやっていた。 –
ちょっと@DevendraSinghこれについていくつかの例を挙げてください。 –
私はどんなWebサービスもしたくありません。それは私のアプリから任意のwebviewではありません。 –