私はiOS用のXMPP Chatクライアントを開発しましたが、今はiOS自体から新しいユーザー登録を行う方法を研究しています。新しいユーザーを登録するために使用された方法を誰かが助けることができます。サーバーと通信し、ユーザー名とパスワードをサーバー・データベースに保管する必要があるためです。私が2日からそれを探しているのを助けてください。新しいユーザー登録の方法xmppフレームワークiOS
答えて
このソリューションは私のために働いている
Methodeの1)でバンド登録することにより(のInように2つの方法でのiOSからのXMPPサーバーに登録することができます
NSString *username = @"[email protected]_SERVER_IP_HERE"; // OR [NSString stringWithFormat:@"%@@%@",username,XMPP_BASE_URL]]
NSString *password = @"SOME_PASSWORD";
AppDelegate *del = (AppDelegate *)[[UIApplication sharedApplication] delegate];
del.xmppStream.myJID = [XMPPJID jidWithString:username];
NSLog(@"Does supports registration %ub ",);
NSLog(@"Attempting registration for username %@",del.xmppStream.myJID.bare);
if (del.xmppStream.supportsInBandRegistration) {
NSError *error = nil;
if (![del.xmppStream registerWithPassword:password error:&error])
{
NSLog(@"Oops, I forgot something: %@", error);
}else{
NSLog(@"No Error");
}
}
// You will get delegate called after registrations in either success or failure case. These delegates are in XMPPStream class
// - (void)xmppStreamDidRegister:(XMPPStream *)sender
//- (void)xmppStream:(XMPPStream *)sender didNotRegister:(NSXMLElement *)error
あなたのコードを試しましたが、私のために働いていませんでした。私はXMPPをopenfireに接続できません。これをどうやって行うのか教えてください。私は1週間答えを探していますが、助けを得ていませんでした。 XMPPの設定方法を教えてください。 @rohit mandiwal。 –
サーバーにアカウントをまだ持っていない場合は、これを行う方法はありますか? – sudo
動作していません..... –
NSMutableArray *elements = [NSMutableArray array];
[elements addObject:[NSXMLElement elementWithName:@"username" stringValue:@"venkat"]];
[elements addObject:[NSXMLElement elementWithName:@"password" stringValue:@"dfds"]];
[elements addObject:[NSXMLElement elementWithName:@"name" stringValue:@"eref defg"]];
[elements addObject:[NSXMLElement elementWithName:@"accountType" stringValue:@"3"]];
[elements addObject:[NSXMLElement elementWithName:@"deviceToken" stringValue:@"adfg3455bhjdfsdfhhaqjdsjd635n"]];
[elements addObject:[NSXMLElement elementWithName:@"email" stringValue:@"[email protected]"]];
[[[self appDelegate] xmppStream] registerWithElements:elements error:nil];
以下の代表者を使用して登録が成功したかどうかがわかります。
- (void)xmppStreamDidRegister:(XMPPStream *)sender{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Registration" message:@"Registration Successful!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
}
- (void)xmppStream:(XMPPStream *)sender didNotRegister:(NSXMLElement *)error{
DDXMLElement *errorXML = [error elementForName:@"error"];
NSString *errorCode = [[errorXML attributeForName:@"code"] stringValue];
NSString *regError = [NSString stringWithFormat:@"ERROR :- %@",error.description];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Registration Failed!" message:regError delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
if([errorCode isEqualToString:@"409"]){
[alert setMessage:@"Username Already Exists!"];
}
[alert show];
}
こんにちはKarunどこでホスト名とポート名を設定しますか? –
兄、 - (void)xmppStreamDidRegister:(XMPPStream *)送信側メソッドが呼び出していません。 –
が動作していません.... –
新しいユーザーバンド登録とは、サーバー上にアカウントを持たないユーザーが、XMPPプロトコル自体を使用して登録することができるため、既に使用しているのと同じプロトコル内で登録が「バンド内」のままであることです)。XEP -0077拡張子。
また、サーバーはインバンド登録もサポートする必要があります。 xmppStream: xmppStream
- (BOOL)connectAndRegister
{
if (![xmppStream isDisconnected]) {
return YES;
}
NSString *myJID = @"[email protected]_SERVER_IP_HERE"; // OR [NSString stringWithFormat:@"%@@%@",username,XMPP_BASE_URL]]
NSString *myPassword = @"SOME_PASSWORD";
//
// If you don't want to use the Settings view to set the JID,
// uncomment the section below to hard code a JID and password.
//
// Replace me with the proper JID and password:
// myJID = @"[email protected]/xmppframework";
// myPassword = @"";
if (myJID == nil || myPassword == nil) {
DDLogWarn(@"JID and password must be set before connecting!");
return NO;
}
[xmppStream setMyJID:[XMPPJID jidWithString:myJID]];
password = myPassword;
NSError *error = nil;
if (![xmppStream connect:&error])
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error connecting"
message:@"See console for error details."
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alertView show];
DDLogError(@"Error connecting: %@", error);
return NO;
}
return YES;
}
NSString *password
に接続してファイル
ステップ2の@interface部に宣言します。
は、ステップ1は、ではバンドの登録のためにこれらのステップを使用しますデリゲート- (void)xmppStreamDidConnect:(XMPPStream *)sender
コール
ステップ3:XMPPことでXMPPStreamデリゲートによってチェック登録成功または失敗
- (void)xmppStreamDidRegister:(XMPPStream *)sender
- (void)xmppStream:(XMPPStream *)sender didNotRegister:(NSXMLElement *)error
Methodeの2):スタート
- (void)xmppStreamDidConnect:(XMPPStream *)sender{
DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD);
[[NSNotificationCenter defaultCenter] postNotificationName:XMPPStreamStatusDidConnectNotification
object:nil
userInfo:nil];
_isXmppConnected = YES;
NSError *error = nil;
DDLogVerbose(@"Start register via In-Band Registration...");
if (xmppStream.supportsInBandRegistration) {
if (![xmppStream registerWithPassword:password error:&error]) {
NSLog(@"Oops, I forgot something: %@", error);
}else {
NSLog(@"No Error");
}
}
// [_xmppStream authenticateWithPassword:password error:&error];
}
ステップ4として、インバンド登録を経て登録OpenFireサーバーのRest APIには、通常の登録が可能なプラグイン(Rest Apiプラグイン)がインストールされていました。
は、RESTのAPI登録の手順を使用しステップ1:サーバー上に残りのAPIプラグインをインストール
ステップ2:サーバーとして残りAPIの設定サーバー - >サーバーの設定 - >休憩アピそれを有効にします。
セキュアなユーザ登録に「秘密鍵認証」を使用することができます。したがって、その認証をopenfireサーバからコピーし、残りのapiが登録のために呼び出されたときに使用します。
ステップ3:登録
-(void)CreateUserAPI
{
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"abc",@"username",@"SOME_PASSWORD",@"password",@"abc-nickname",@"name",@"[email protected]",@"email", nil];
NSData* RequestData = [NSJSONSerialization dataWithJSONObject:dict options:0 error:nil];
NSMutableURLRequest *request = [ [ NSMutableURLRequest alloc ] initWithURL: [ NSURL URLWithString:[NSString stringWithFormat:@"%@users",RESTAPISERVER]]];
[request setHTTPMethod: @"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:AuthenticationToken forHTTPHeaderField:@"Authorization"];
[request setHTTPBody: RequestData];
NSURLSession *session = [NSURLSession sharedSession];
[[session dataTaskWithRequest:request
completionHandler:^(NSData *data,
NSURLResponse *response,
NSError *error) {
// handle response
if (!error)
{
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
if ([httpResponse statusCode]==201)
{
NSLog(@"Registration Successful");
}else
{
NSLog(@"Registration failed");
}
}else
{
NSLog(@"Try again for registration");
}
}] resume];
}
RESTAPISERVER
ためコール休憩APIは残りのAPI URL文字列です。
AuthenticationToken
あなたは違いがたくさんになるだろう使用するサーバーに言及し、「秘密キー認証」(openfireサーバからのコピー)
- 1. XMPP - 新規ユーザーの登録
- 2. asmack XMPP新規ユーザー登録
- 3. パスワードなしのユーザーをXMPPに登録
- 4. IOSユーザー登録
- 5. Applozic登録ユーザーIOS
- 6. firebaseに新しいユーザーを登録
- 7. xmpp ios:openfireサーバーからすべての登録ユーザーを取得する方法
- 8. JOMSOCIAL:新規ユーザー登録プログレスバー
- 9. 登録ユーザーと未登録のユーザー
- 10. IOS XMPPフレームワークと参加ルーム
- 11. iOSアプリのユーザー登録と認証サービス
- 12. iOS:プッシュ通知の登録方法
- 13. xmppプロトコルでのトランスポートの多重登録
- 14. iOS開発、iPhone Appでユーザー登録
- 15. ユーザーの登録
- 16. SharePoint 2010 - 新規ユーザーの登録
- 17. 新規ユーザー登録後のデフォルトロール
- 18. 新しいイオンプッシュ(2016)イオンダッシュボードにユーザー登録していない
- 19. iOS XMPPフレームワークのブロック/プライバシーのオプション?
- 20. ユーザー用のWordpress REST API登録(登録)
- 21. 新しいイオンプッシュ登録デバイストークン
- 22. WordPressユーザー登録時に新しいユーザーに2つのユーザー役割オプションを与える方法
- 23. ユーザー登録ページには、私のユーザー登録ページを検証したくない
- 24. ユーザー登録dd
- 25. CouchAppユーザー登録
- 26. djangoユーザー登録
- 27. Yii2ユーザー登録
- 28. ユーザー登録プロセス
- 29. フィールド値のドロップダウンメニュー、ユーザー/登録簿の新しい値オプション付き
- 30. JHipster新規ユーザー登録 - > MailConnectException
です。 – ggozad
私はOpenFire Serverを使用していますが、これについて研究しましたが、xmppフレームワークライブラリの登録に使用されたメソッドは - (BOOL)supportsInBandRegistrationです。 - (BOOL)registerWithPassword:(NSString *)パスワードエラー:(NSError **)errPtr;しかし、それを実装する方法を探しています。 – obaid
ここで私の答えを見てみましょう:http://stackoverflow.com/questions/9988206/new-registration-on-openfire-with-strophe-js/10000927#10000927 – ggozad