Tôi đang gặp sự cố khi đăng nhập với quyền xuất bản trong SDK 3.1 ios facebook.Đăng nhập Facebook iOS 3.1 sdk với quyền gọi lại xuất bản
Ứng dụng của tôi có nút chia sẻ video và khi người dùng nhấp vào, tôi muốn thêm quyền + xuất bản cơ bản. Theo tôi được biết, tôi phải làm hai cuộc gọi -
openActiveSessionWithReadPermissions
, và sau đóreauthorizeWithPublishPermissions
Dưới đây là đoạn code tôi đang sử dụng hiện nay:
//Opens a Facebook session and optionally shows the login UX.
- (void)openSessionForReadPermissions
{
[FBSession openActiveSessionWithReadPermissions:nil
allowLoginUI:YES
completionHandler:
^(FBSession *session,
FBSessionState state, NSError *error) {
//this is called even from the reauthorizeWithPublishPermissions
if (state == FBSessionStateOpen && !error)
{
[self openSessionForPublishPermissions];
}
else if (state == FBSessionStateClosedLoginFailed)
{
[FBSession.activeSession closeAndClearTokenInformation];
[[NSNotificationCenter defaultCenter] postNotificationName:FBLoginErrorNotification object:session];
}
}];
}
-(void)openSessionForPublishPermissions
{
NSArray* permissions = [NSArray arrayWithObject:@"publish_stream"];
[[FBSession activeSession] reauthorizeWithPublishPermissions:permissions
defaultAudience:FBSessionDefaultAudienceFriends
completionHandler:
^(FBSession *session, NSError *error)
{
if (!error)
{
[[NSNotificationCenter defaultCenter]
postNotificationName:FBLoginSuccessNotification
object:session];
}
else
{
[[NSNotificationCenter defaultCenter]
postNotificationName:FBLoginErrorNotification
object:session];
}
}];
}
tôi thấy rằng khối trong openSessionForReadPermissions được gọi hai lần (một lần với FBSessionStateOpen và một lần với FBSessionStateOpenTokenExtended từ cuộc gọi openSessionForPublishPermissions), một Tôi nhận được một ErrorReauthorizeFailedReasonUserCancelled khi lần đầu tiên cố gắng đăng nhập vào ứng dụng (nếu O đã xóa tất cả quyền ứng dụng trước đó).
Cách thích hợp để triển khai thông tin đăng nhập này là gì? Ứng dụng không yêu cầu đăng nhập Facebook, ngoại trừ một tính năng này, vì vậy quá trình đăng nhập phải được đẩy cùng một nút.
Cảm ơn!
+1 Chúng tôi đang mắc kẹt với cùng một vấn đề, đặc biệt là kể từ khi các cuộc gọi cho phép hỗn hợp là depricated. –
reauthorizeWithPublishPermissions bị khấu hao. Sử dụng requestNewPublishPermissions để thay thế. – John