Pregunta

Una vez que el usuario ha iniciado sesión, yo recuperar la información de usuario utilizando este código:

[_facebook requestWithGraphPath:@"me" andDelegate:self];

Se trabajó para las primeras veces, pero con el tiempo ha devuelto un error. Pensé que era una cosa sesión ya que tengo "offline_access" en mis permisos. Me he registrado hacia fuera de Facebook y compilado de nuevo de una generación limpia y todavía devuelve este error:

  

error de dominio = Código facebookErrDomain = 10000 UserInfo = 0x54a2930 "La operación no se pudo completar. (FacebookErrDomain de error 10000)."

Asumo mi token de acceso es válido, ya que puedo hacer publicación. Estoy en lo cierto al suponer que?

También se dio cuenta de que cada vez que me conecto, Facebook no me redirigir a pedir permiso si permito que mi aplicación para acceder a mi información de usuario.

Puede alguien decirme lo que está mal?

¿Fue útil?

Solución

Esta es una solución temporal que he usado. Usted puede encontrar esta línea método 46 en FBLoginDialog.m

- (void) dialogDidSucceed:(NSURL*)url {
  NSString *q = [url absoluteString];
  NSString *token = [self getStringFromUrl:q needle:@"access_token="];
  NSDate *expirationDate = [NSDate distantFuture];

  if ((token == (NSString *) [NSNull null]) || (token.length ==0)) {
    [self dialogDidCancel:url];
    [self dismissWithSuccess:NO animated:YES];
  } else {
    if ([_loginDelegate respondsToSelector:@selector(fbDialogLogin:expirationDate:)]) {
      [_loginDelegate fbDialogLogin:token expirationDate:expirationDate];
    }
    [self dismissWithSuccess:YES animated:YES];
  }
}

¿Todo el mundo con este tema solicitar el permiso offline_access? Es la única razón que puedo ver una fecha de caducidad no se envía. Tal vez no se trate de requestion el permiso offline_access.

Otros consejos

respuesta a la orden de autorizar parece ser diferente. Ahora, no hay fecha de caducidad como lo era antes. Traté de forzar a isSessionValid para devolver TRUE, y funciona.

cheques isSessionValid accessToken Y ExpirationDate. Como no hay ninguna fecha de caducidad, el falso retorno de la función.

No sé si se trata de una modificación temporal de facebook, o uno definitivo. En este caso, debe fijarse SDK, supongo. Y una nueva llamada debe recuperar ExpirationDate.

He tenido el mismo problema. Revisé mi configuración de privacidad, permisos, etc ... otro método, pero no pude resolverlo. Muchos sitios dijeron "permiso de verificación para acceder a offline_access / read_stream / publish_stream", creo que estos son importantes también, pero yo no lo podían arreglar.

Entonces me encontré siguiente solución por último, que trabaja muy bien.

Se debe cambiar "safariAuth: SÍ" a "safariAuth: NO". En el archivo "Facebook.m"

- (void)authorize:(NSArray *)permissions
         delegate:(id<FBSessionDelegate>)delegate {
            [_permissions release];
            _permissions = [permissions retain];
            _sessionDelegate = delegate;

            //[self authorizeWithFBAppAuth:YES safariAuth:YES];
            //You can get auth_token in iOS App!
           [self authorizeWithFBAppAuth:YES safariAuth:NO];      
}

A continuación, se puede utilizar el método siguiente para obtener su propia información si usted está en el sistema.

[facebook requestWithGraphPath:@"me" andDelegate:self];

Si no está en el sistema, deberías acceder al siguiente método en primer lugar.

permissions =  [[NSArray arrayWithObjects:
             @"email", @"read_stream", @"user_birthday", 
             @"user_about_me", @"publish_stream", @"offline_access", nil] retain];
if (![facebook isSessionValid]) {
    [facebook authorize:permissions delegate:self];
}

Después de post salvó me.thank tanto! Como recuperar la respuesta de Facebook usando Facebook iOS SDK

Buena suerte y feliz de codificación! Gracias.

he tenido este problema, sobre todo porque mi cuenta de Facebook ha llegado al máximo está sobre la privacidad.

Es muy probable que los permisos que se aprobó en al ingresar. Por defecto sólo dará acceso a la información pública. Recuerde que hay cada vez menos información que es pública en Facebook.

Trate de cambiar su permiso para algo así como "read_stream", nil

A continuación, en lugar de [requestWithGraphPath _facebook: @ "me" andDelegate: auto];

Trate de usar [requestWithGraphPath _facebook: @ "me / home" andDelegate: auto];

Esto debería devolver su servicio de noticias. Trabajado para mí hace 5 minutos.

No hay mucho que añadir aquí, no funciona aquí también. Utilizo el SDK de iOS para publicar en la corriente y funcionó hasta ayer. Hoy mi cliente me llamó y se quejó. Uf.

He solicitado el permiso de acceso sin conexión y por supuesto el "publish_stream" permiso ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top