Ho un servizio di back-end che mi login mia app e restituire un token di facebook esteso da precedente login, possibilmente da un altro dispositivo (quindi nessun credenziali memorizzate nella cache su questo dispositivo). Voglio utilizzare questo token per avviare una sessione di Facebook. Sto usando qualcosa come:Aprire un FBSession con esistente Token dati su iOS
FBSession* session = [[FBSession alloc] initWithPermissions:@[@"publish_actions"]];
FBAccessTokenData* tokenData =
[FBAccessTokenData createTokenFromString:token
permissions:@[@"publish_actions"]
expirationDate:nil
loginType:FBSessionLoginTypeTestUser
refreshDate:nil];
[session openFromAccessTokenData:tokenData completionHandler:nil];
sto qui di passaggio 'pari a zero' per chiarezza, nel mio codice sto maneggiare il completamento e l'oggetto e entrare sessione restituito che sembra essere in uno stato aperto senza errori. Quando provo e utilizzare la sessione ottengo un errore del tipo:
Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)" UserInfo=0xb8b1680 {com.facebook.sdk:HTTPStatusCode=403, com.facebook.sdk:ParsedJSONResponseKey={
body = {
error = {
code = 200;
message = "(#200) The user hasn't authorized the application to perform this action";
type = OAuthException;
};
};
code = 403;
}, com.facebook.sdk:ErrorSessionKey=<FBSession: 0xa2b62a0, state: FBSessionStateOpen, loginHandler: 0xa29e9b0, appID: 131721883664256, urlSchemeSuffix: , tokenCachingStrategy:<FBSessionTokenCachingStrategy: 0xa273f60>, expirationDate: 4001-01-01 00:00:00 +0000, refreshDate: 2013-07-26 16:21:10 +0000, attemptedRefreshDate: 0001-12-30 00:00:00 +0000, permissions:(
email,
"publish_actions"
)>}
Qualche suggerimento ...?
Questo approccio funziona perfettamente con la versione 3.21.1 di sdk. È possibile che il token non sia stato generato da FBSessionLoginTypeTestUser e questo è il motivo per cui sta dicendo che l'utente non è autorizzato. –