Tôi đang làm việc trên Ứng dụng iOS sử dụng Parse và Facebook.Phân tích cú pháp bằng Facebook Đăng nhập: Máy chủ từ chối yêu cầu gia hạn có mã lỗi: 190
Đối với tên đăng nhập Facebook, tôi đang làm theo các hướng dẫn trên trang này: https://www.parse.com/tutorials/integrating-facebook-in-ios
Sau khi hướng dẫn, tôi có mã này mà xác nhận phiên cache:
// check if this cached session is still valid?
// does nothing if still valid
- (void) validateCachedSession
{
FBRequest *request = [FBRequest requestForMe];
[request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (!error)
{
// handle successful response
LogObvious(@"Facebook session validated. No problem");
}
else if ([error.userInfo[FBErrorParsedJSONResponseKey][@"body"][@"error"][@"type"] isEqualToString:@"OAuthException"])
{ // Since the request failed, we can check if it was due to an invalid session
LogObvious(@"The facebook session was invalidated. Announce logged Out");
// The persisted session is invalid. Logout!
[self logout];
}
else
{
LogObvious(@"The facebook session was invalidated. Announce logged Out");
// The persisted session is invalid. Logout!
[self logout];
}
}];
}
Như đã trình bày ở trên, nếu phiên được lưu trong bộ nhớ cache không hợp lệ, nó phải gọi là đăng xuất:
- (void) logout
{
[PFUser logOut];
// Over here we will show the login button again.
}
Để kiểm tra điều này. Lần đầu tiên tôi đăng nhập vào ứng dụng của mình bằng tài khoản Facebook. Sau đó, tôi đã thay đổi mật khẩu và truy cập lại ứng dụng.
Ứng dụng nhận dạng chính xác phiên không hợp lệ và đăng xuất được gọi.
Nhưng khi tôi bấm đăng nhập một lần nữa, chức năng đăng nhập được trở về lỗi này:
Uh oh. An error occurred: Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)" UserInfo=0x1e066140 {com.facebook.sdk:ErrorInnerErrorKey=Error Domain=com.apple.accounts Code=1 "Server refused renewal request with error code: 190" UserInfo=0x1d56df10 {NSLocalizedDescription=Server refused renewal request with error code: 190}, com.facebook.sdk:ParsedJSONResponseKey={
body = {
error = {
code = 190;
"error_subcode" = 65001;
};
};
}}
TẠI SAO? Ngay cả khi tôi chấm dứt ứng dụng và khởi động lại ứng dụng. Ứng dụng hiện sẽ bị kẹt ở trạng thái này - không thể đăng nhập được. Bất kỳ trợ giúp sẽ được đánh giá cao.
p/s: Để được rõ ràng, đây là chức năng của tôi đăng nhập:
// to be called when user explicitly clicked a login button
- (void) loginByFacebookWithPermissions:(NSArray*)permissionsArray
{
LogFunctionCalledObvious();
[PFFacebookUtils logInWithPermissions:permissionsArray block:^(PFUser *user, NSError *error)
{
if (!user)
{
if (!error)
{
NSLog(@"Uh oh. The user cancelled the Facebook login.");
} else
{
NSLog(@"Uh oh. An error occurred: %@", error);
[self logout];
}
} else if (user.isNew)
{
LogObvious(@"User with facebook signed up and logged in!");
[self requestLoggedInUserInfo];
} else
{
LogObvious(@"User with facebook logged in!");
[self requestLoggedInUserInfo];
}
}];
}
p/s2: OK, sau khi nghiên cứu kỹ hơn, vì vậy nó bị mắc kẹt trong trạng thái này cho đến khi tôi đi đến Settings-> Facebook để nhập lại mật khẩu mới. Đây có phải là hành vi đúng không? sao iOS6 không kịp nhắc nhở người dùng thay đổi mật khẩu khi tôi thay đổi mật khẩu Facebook từ Facebook.com?
Tôi gặp sự cố tương tự, bạn có giải quyết được vấn đề này không? Cảm ơn – Kreutzer
Bằng cách nào đó ứng dụng Facebook nhận được thông tin này trong ngữ cảnh của ứng dụng. Nó yêu cầu người dùng nhập mật khẩu một lần nữa ... bạn có thể có thể snoop những gì họ đang gọi với Charles hoặc một số gói sniffing cho các cuộc gọi lại auth, tôi rất tò mò .... Các thay thế là kinda không có thật như nhiều người dùng có không biết phải làm gì với thông điệp đó. – Kevin