subir - iOS: Cómo obtener el Selector de fotos del álbum de Facebook
como subir mas de 30 fotos a facebook desde el celular (2)
¿El SDK de iOS de Facebook proporciona algún álbum de fotos predeterminado
(Facebook)
, como
UIImagePickerController
hace
UIImagePickerController
?
Me enteré de esto, así que lo busqué por mucho tiempo pero no pude encontrar nada.
Por favor, avíseme si alguien tiene alguna idea sobre esto. Si no es así, seguramente tendré que hacer la mía.
Facebook iOS SDK no está proporcionando tal cosa por ahora. En cambio, encontré una clase de terceros que hace exactamente lo mismo. https://github.com/OceanLabs/FacebookImagePicker-iOS/
Importar desde Facebook
sin la herramienta de un tercero, obtenga fotos de Facebook del álbum Working For graph api 2.4, 2.5, 2.6,2.7,2.8 y Facebook graph api 2.10
1) Agregar aplicación en la cuenta de desarrollador de Facebook
2) luego elija la plataforma en la aplicación para comprender mejor ver la siguiente captura de pantalla
3) Elija ios y siga la visualización de todos los pasos en el asistente
4) luego vaya a la gráfica api explore https://developers.facebook.com/tools/explorer/145634995501895/
5) seleccione su aplicación en el explorador de API de gráficos para comprender mejor la captura de pantalla
6) Haga clic en Obtener token ... luego haga clic en Obtener token de acceso en un token de obtención que puede ver tantos permisos para comprender mejor ver imágenes
7) Para activar o desactivar su permiso para obtener el nombre del álbum y las imágenes que se muestran después de la captura de pantalla
si el permiso user_photos no está activado, entonces visualice el error, vea la siguiente captura de pantalla
Después de completar el paso 7, vaya a los pasos a continuación o simplemente descargue los archivos de codificación. He puesto un enlace donde puedes descargar
Codificación de archivos para el objetivo c
https://www.dropbox.com/s/1ysek035ek88xuw/FacebookAlbum%20Demo.zip?dl=0
8) si no hay visualización de error, siga el código en su método viewDidLoad en el controlador de vista. Este código para obtener el nombre del álbum y los identificadores del álbum.
C objetivo
FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
[loginManager logInWithReadPermissions:@[@"public_profile", @"email", @"user_friends",@"user_photos"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
{
[[[FBSDKGraphRequest alloc]
initWithGraphPath:@"me/albums"
parameters: nil
HTTPMethod:@"GET"]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if (!error) {
// NSLog("%@",result);
NSArray *data = [result valueForKey:@"data"];
name = [data valueForKey:@"name"];
ids = [data valueForKey:@"id"];
[self.Fbtableview reloadData];
}
}];
9) ahora obteniendo fotos de portada del álbum siguiendo el tipo de código en la celda de vista de tabla para la fila
C objetivo
coverid = [NSString stringWithFormat:@"/%@?fields=picture",[ids objectAtIndex:indexPath.row]]; **// pass album ids one by one**
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
initWithGraphPath:coverid
parameters:nil
HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
id result,
NSError *error)
{
// NSLog("%@",result);
NSDictionary *pictureData = [result valueForKey:@"picture"];
NSDictionary *redata = [pictureData valueForKey:@"data"];
urlCover = [redata valueForKey:@"url"];
NSURL *strUrl = [NSURL URLWithString:[NSString stringWithFormat:@"%@",urlCover]];
NSData *data = [NSData dataWithContentsOfURL:strUrl];
UIImage *img = [[UIImage alloc] initWithData:data];
UIImageView *img1;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
img1= [[UIImageView alloc]initWithFrame:CGRectMake(10, 0, 50, 50)];
}
else
{
img1= [[UIImageView alloc]initWithFrame:CGRectMake(10, 0, 40, 40)];
}
[img1 setImage:img];
[img1 setContentMode:UIViewContentModeScaleAspectFit];
[cell.contentView addSubview:img1];
}];
10) ahora codifique para obtener la identificación del álbum de fotos.
// code in **table didselect method**
C objetivo
NSString *strAlbumid = [NSString stringWithFormat:@"/%@/photos",[ids objectAtIndex:indexPath.row]];
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
initWithGraphPath:strAlbumid
parameters:nil
HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
id result,
NSError *error) {
// NSLog("%@",result);
NSDictionary *data = [result valueForKey:@"data"];
arrId = [data valueForKey:@"id"];
PhotoViewControllerr *photoViewcontroller;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
photoViewcontroller = [[PhotoViewControllerr alloc]initWithNibName:@"PhotoViewController_Ipad" bundle:nil];
}
else
{
photoViewcontroller = [[PhotoViewControllerr alloc]initWithNibName:@"PhotoViewController" bundle:nil];
}
photoViewcontroller.picsArray = arrId;
[photoViewcontroller.navigationController setNavigationBarHidden:YES];
[[self navigationController] pushViewController: photoViewcontroller animated:YES];
}];
11) otro controlador de vista, ahora un código para obtener imágenes en la vista de colección cellforRow
C objetivo
NSString *strAlbumid = [NSString stringWithFormat:@"/%@/?fields=images",[self.picsArray objectAtIndex:indexPath.row]];
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
initWithGraphPath:strAlbumid
parameters:nil
HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
id result,
NSError *error)
{
//NSLog("%@",result);
picture_images = [result valueForKey:@"images"];
NSMutableArray *picCount = [picture_images objectAtIndex:picture_images.count - 1];
NSURL *strUrl = [NSURL URLWithString:[NSString stringWithFormat:@"%@",[picCount valueForKey:@"source"]]];
dispatch_queue_t q = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
dispatch_async(q, ^{
/* Fetch the image from the server... */
NSData *data = [NSData dataWithContentsOfURL:strUrl];
UIImage *img = [[UIImage alloc] initWithData:data];
dispatch_async(dispatch_get_main_queue(), ^{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
img1= [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 200, 200)];
}
else
{
img1= [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
}
img1.image = img;
img1.contentMode = UIViewContentModeScaleAspectFit;
[cell.contentView addSubview:img1];
});
});
}];
12) Después de obtener los datos, debe enviar su aplicación en Facebook para enviarla, puede completar la información en
1) detalles de la aplicación
2) estado y revisión
=====
Si tienes alguna consulta, te ayudaré
disfruta de la codificación feliz.