Ho problemi ad accedere con le autorizzazioni di pubblicazione in Facebook 3.1 ios sdk.Accesso SDK di Facebook iOS 3.1 con callback di autorizzazione di pubblicazione
La mia app ha un pulsante per condividere un video e quando l'utente fa clic su Voglio aggiungere il permesso di base + di pubblicazione. A quanto ho capito, devo fare due chiamate -
openActiveSessionWithReadPermissions
, e quindireauthorizeWithPublishPermissions
Ecco il codice che sto usando ora:
//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];
}
}];
}
vedo che il blocco in openSessionForReadPermissions è chiamato due volte (una volta con FBSessionStateOpen e una volta con FBSessionStateOpenTokenExtended dalla chiamata openSessionForPublishPermissions), un Ho ottenuto un ErrorReauthorizeFailedReasonUserCancelled quando provo per la prima volta ad accedere all'app (se O cancellassi tutte le autorizzazioni delle app prima).
Qual è il modo corretto per implementare questo accesso? L'app non richiede il log-in di Facebook, fatta eccezione per questa funzione, quindi il processo di login dovrebbe essere sullo stesso pulsante.
Grazie!
+1 Siamo bloccati con lo stesso problema, soprattutto perché la chiamata di autorizzazione mista è stata privata. –
reauthorizeWithPublishPermissions è ammortizzato. Utilizzare invece requestNewPublishPermissions. – John