Facebook의 3.1 ios sdk에 게시 권한으로 로그인하는 데 문제가 있습니다.게시 권한 콜백이 포함 된 iOS 3.1 sdk 로그인
내 앱에는 동영상을 공유하는 버튼이 있으며, 사용자가 클릭하면 기본 + 퍼블리싱 권한을 추가하고 싶습니다. 내가 알고있는 것처럼, 난 두 호출 할 필요가 -
openActiveSessionWithReadPermissions
을하고reauthorizeWithPublishPermissions
여기
내가 지금 사용하고 코드입니다 : 나는 것을 볼 수
//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];
}
}];
}
은 openSessionForReadPermissions의 블록은 두 번 호출됩니다 (한 번 FBSessionStateOpen을 사용하고 한 번 FBSessionStateOpenTokenExtended를 openSessionForPublishPermissions 호출에서 사용). n 먼저 응용 프로그램에 로그인하려고 시도 할 때 ErrorReauthorizeFailedReasonUserCancelled가 나타납니다 (O가 이전에 모든 응용 프로그램 권한을 삭제 한 경우).
이 로그인을 구현하는 적절한 방법은 무엇입니까? 이 기능을 제외하고 응용 프로그램은 페이스 북 로그인을 요구하지 않으므로 로그인 프로세스는 동일한 버튼 푸시로 이루어져야합니다.
감사합니다.
+1 우리는 동일한 문제에 봉착했습니다. 특히 혼합 된 권한 호출이 부적절하기 때문에 더욱 그렇습니다. –
reauthorizeWithPublishPermissions가 감가 상각됩니다. 대신 requestNewPublishPermissions를 사용하십시오. – John