unity objective fbsdkcorekit ios objective-c facebook facebook-graph-api

objective - Publicar fotos en la página de fans de Facebook con iOS SDK



install facebook sdk ios (5)

No estoy seguro de esto, ya que soy bastante nuevo en la integración de FB iOS, pero creo que no debes usarme / fotos, sino las xyz / fotos donde xyz es la ID de la página en la que deseas publicar.

Intento subir una foto a una página de Facebook que poseo usando el iOS SDK y la API de gráficos. Pude subir fotos a mi propio muro. También pude publicar un mensaje en el muro de la página de fans como administrador y crear un álbum en mi página de fans, así que creo que estoy haciendo las llamadas correctas, pero no tengo éxito.

Esto es lo que estoy haciendo actualmente.

Estoy ingresando usando

Facebook *fb = [[Facebook alloc] init]; self.facebook = fb; [fb release]; NSArray *permissions = [[NSArray arrayWithObjects:@"read_stream", @"offline_access", @"publish_stream", @"manage_pages", @"user_photos", @"friends_photos",nil] retain]; [facebook authorize:FB_APP_ID permissions:permissions delegate:self]; [permissions release];

Después de iniciar sesión, solicito las cuentas

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

Las cuentas me son devueltas con tokens de acceso para cada página y aplicación que poseo. Utilizo un bucle simple para analizar a través de las cuentas para agregar el access_token suministrado para la página en la que deseo subir una foto.

Luego configuré mi token de acceso de mi objeto de Facebook al nuevo access_token.

facebook.accessToken = new_accessToken;

e intente subir una foto de mi página de fan usando

UIImage *uploadImage = [UIImage imageNamed:@"t200.jpg"]; NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys: uploadImage, @"source", @"test caption", @"message", nil]; [facebook requestWithGraphPath:@"/me/photos" andParams:params andHttpMethod:@"POST" andDelegate:self];

La respuesta que recibo es

{"error":{"type":"OAuthException","message":"(#1) An unknown error occurred"}}

¿Es esto un error en la API gráfica de Facebook? También intenté hacer esta llamada utilizando solicitudes HTTPS estándar, y obtuve el mismo resultado.


Noticias viejas pero ... no estoy seguro de la parte de la página de fans, pero debe agregar "? Access_token = ..." después de "/ me / photos" o lo que termine usando para que la API de gráficos supere el error desconocido. El sdk de Facebook no agrega automáticamente el token de acceso, por lo que debe hacerlo usted mismo.

[facebook requestWithGraphPath: [NSString stringWithFormat: @ "/ me / photos? access_token =% @", facebook.accessToken] yParams: params y HttpMethod: @ "POST" yDelegate: self];


Después de iniciar sesión con éxito en Facebook, puede obtener la lista FanPage solicitando @ "/ me / accounts" e iterar a la página de fans que desee y solicitar su accessToken solicitando @"/FBFanPageID?fields=access_token"

Este accessToken es diferente de tu facebook.accesstoken.

Después de acceder a fanPage accessToken, configúralo como facebook accessToken por

[_facebook setAccessToken:_accessTokenForFanPage]; // este es el paso necc

Ahora puedes subir a fanPage wall por @"/FBFanPageID/photos"

Solicite los álbumes de fanPage por @"/FBFanPageID/albums"

Subir a un álbum en particular por @"/AlbumsID/photos"

Para cargar estas imágenes, se usará el diccionario de parámetros.

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys: IMAGE,@"source", IMAGECAPTION,@"message",
nil];


Tengo códigos muy similares y funciona, lo único que es ligeramente diferente es crear la instancia de Facebook en el AppDelegate ...

QRSMAppDelegate * delegate = (QRSMAppDelegate *) [[UIApplication sharedApplication] delegate];

if (![[delegate facebook] isSessionValid]) { [[delegate facebook] authorize:permissions];

Al igual que usted, inicialmente creé la instancia de Facebook en el controlador de vista y salí con muchos errores extraños. El problema (más tarde me enteré) es ... Facebook responde pasando una URL a la instancia de la clase de Facebook y desde el exterior, el único punto de entrada a su aplicación es el delegado de la aplicación. (¡Consulte la Hackbook de la aplicación de muestra de Facebook sdk)!

- Aplicación (BOOL): aplicación (UIApplication *) openURL: (NSURL *) url sourceApplication: (NSString *) sourceApplication annotation: (id) annotation {

BOOL ret = [facebook handleOpenURL:url];

.... return (ret); }

El problema aquí es, por supuesto, ¿qué ocurre si solo uso Facebook en una pequeña parte de mi aplicación y a millas de distancia del delegado de la aplicación (la creación de instancias de Facebook requiere que usted declare al delegado)?

En lugar de enfrentar problemas igualmente complejos al pasar la url, en realidad fue más fácil asignar el controlador de visualización (delegado de Facebook) en el delegado de la aplicación y pasarlo a la jerarquía de la vista.


Puede enviar un correo electrónico a su página de admiradores y obtener la foto adjunta para que aparezca como si el administrador la hubiera publicado.

En la página de tu fan, elige editar la página y luego elige el móvil. En la página móvil, Facebook le mostrará una dirección de correo electrónico que puede usar para publicar en su página de fans.

En iOS uso el http://code.google.com/p/skpsmtpmessage/ para enviar el correo electrónico

Debes usar esto ...

svn checkout http://skpsmtpmessage.googlecode.com/svn/trunk/ skpsmtpmessage-read-only

para descargar el código

No incluya ningún texto en el correo electrónico además de algo en el asunto. De lo contrario, no se publicará.