Publicación de la foto en la página de fans de Facebook a través de la aplicación iOS por usuarios habituales que no son administradores

Estoy tratando de publicar una foto en la página de fans de Facebook de mi aplicación y también en la de los usuarios. Pude publicar la foto en la pared de los usuarios, pero no pude publicarla en la pared de las páginas de los fans. ( El usuario no es necesariamente un administrador o propietario de una página, solo los usuarios normales. Como la página de fans tiene la opción de que cualquiera pueda publicar en ella, no es obligatorio que el usuario quiera incluso primero la página. ¿Cierto? )

Después de googlear un rato, encontré esta respuesta . Según esto, necesito un access_token de la página de fans y un album_id para hacerlo. Pero no puedo encontrar ninguna pista sobre cómo conseguirlos. Hasta ahora he probado este código:

if ([appDelegate.facebook isSessionValid]) { NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys: resultImage, @"picture", nil]; [appDelegate.facebook requestWithGraphPath:@"me/photos" andParams:params andHttpMethod:@"POST" andDelegate:self]; // to post on users wall, works fine NSString *path = [NSString stringWithFormat:@"my/accounts /fan_page_id?fields=access_toke/photos"]; [appDelegate.facebook setAccessToken: FACEBOOK_ACCESS_TOKEN]; [appDelegate.facebook requestWithGraphPath:path andParams:params andHttpMethod:@"POST" andDelegate:self]; // to post on fan page wall, this doesn't work } 

Puede alguien ayudarme con esto? ¿Que me estoy perdiendo aqui? Gracias por adelantado.

ACTUALIZAR

De acuerdo con esta respuesta , un usuario normal no puede publicar una foto en el muro de las páginas de fans desde una aplicación de iOS, pero puede compartir la foto en él. Ahora, mi pregunta es, ¿cómo consigo publicar la foto en la pared de los usuarios y compartirla en la pared de la página de fans al mismo tiempo? ¿Es posible? ¿Cómo comparto la foto en la pared de la página de fans?

ACTUALIZACIÓN 2

Esta respuesta y la pregunta dicen que los usuarios normales pueden publicar en una pared de fan page a través de noticias, así que modifiqué mi código de esta manera:

 if ([appDelegate.facebook isSessionValid]) { NSMutableDictionary *page_params = [NSMutableDictionary dictionaryWithObjectsAndKeys: @"fan_page_id", @"to", @"Test", @"name", @"Test", @"caption", resultImage, @"picture", nil]; [appDelegate.facebook dialog:@"feed" andParams:page_params andDelegate:self]; } 

Pero sigo recibiendo este mensaje de error ridículo y la aplicación falla:

 -[UIImage length]: unrecognized selector sent to instance 0x24d110 2012-06-06 19:59:03.114 app_name[2739:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIImage length]: unrecognized selector sent to instance 0x24d110' 

¿Qué debería hacer ahora?

En este momento, después de esperar tanto tiempo, la pregunta que me viene a la mente es: ¿esto es posible? Si es así, ¿cómo logro esta tarea? Y si no, ¿cuáles son las alternativas? Por favor ayuda.

Actualización 3

Acabo de descubrir que hay un error conocido tanto en el sdk de iOS como en el sdk de JavaScript para publicar diálogos en el muro de la página de fans. ¿Es esto cierto para la carga de imágenes también? Si alguien tiene una solución para evitar este error, por favor ayuda.

Esto no es posible actualmente (junio de 2012) debido a un error en la API: https://developers.facebook.com/bugs/206254392780441 tiene los detalles.

Una solución alternativa es publicar en la conexión de /feed de la página y adjuntar una imagen a la historia del feed. Esa imagen no se mostrará tan grande como una carga de fotos adecuada, pero debería funcionar correctamente.

Ese error significa que la publicación en la /PAGE_ID/photos de una página utilizando un usuario access_token cargará incorrectamente la foto a la conexión del usuario /photos lugar.

Publicar en la conexión de una página /photos funcionará como se espera al usar el access_token la access_token ; la foto aparecerá en la página de fotos de la página, en la línea de tiempo de la página, y se atribuirá a la página misma (es decir, “desde” la página)

Si su aplicación es específicamente para agregar contenido a una página y tiene un componente del lado del servidor, otra solución para obtener las fotos de un usuario en la página es que los usuarios le proporcionen una foto a través de su propia interfaz (es decir, cárguela). desde el dispositivo del usuario a su servidor), y use una de las access_tokens de los administradores de la página para obtener una Página access_token y realice la carga de esa manera.

En lugar de usar el diálogo, puede pedir permiso al usuario – publish_stream
(dado que hay un error en el componente de diálogo, de lo contrario no es necesario)

Luego puede publicar en una pared de página (suponiendo que la página lo permita en la configuración de página).

Puedes intentar usar el explorador de API api . Puede cambiar la identificación de la página y la prueba otorgando el permiso anterior en la pestaña de permisos extendidos.

Nota
Una cosa más que debes recordar es que no puedes enviar datos de imagen en el parámetro de imagen. Debes proporcionar un enlace a la imagen.

Simplemente intentaría abordar el error de excepción. Es posible publicar en la fuente de noticias de tu página de fans. NO se puede publicar como la página de fan, ya que eso requeriría autenticación (por lo tanto, el requisito de token de acceso … debe iniciar sesión como ese usuario para publicar como ellos). @Igy ya aborda esto arriba.

Sin embargo, no tiene el código de dónde está utilizando el selector de imágenes para obtener la imagen. La excepción que recibe es porque está intentando verificar la longitud de un objeto UIImage en lugar del objeto NSData (que es lo que requiere Facebook). Para convertir su imagen del selector a datos use el siguiente fragmento (reemplace la variable img con su UIImage).

 NSData *imgData = UIImageJPEGRepresentation(img, 0); // Now call to length by facebook SDK will work and the exception will not fail NSLog(@"Size of Image(bytes):%d",[imgData length]); 

Creo que estás usando un argumento equivocado para publicar la foto

Deberías usar @"url" lugar de @"picture"

No estoy seguro de esto, pero podría funcionar.

Tuve el mismo problema en javaScript, que fue resuelto.

Por favor mira aquí para referirte a mi problema