iOS: как получить сборщик фотографий из альбома Facebook
Предоставляет ли Facebook iOS SDK какой-либо альбом по умолчанию (Facebook) UIImagePickerController
делает?
Я слышал об этом, поэтому долго искал, но ничего не смог найти.
Пожалуйста, дайте мне знать, если у кого-то есть мысли по этому поводу. Если это не так, то я, безусловно, должен сделать свой собственный.
2 ответа
Импорт из Facebook
без стороннего инструмента получите фотографии на Facebook из альбома Working For graph api 2.4, 2.5, 2.6,2.7,2.8 и Facebook graph api 2.10
1) Добавить приложение в аккаунт разработчика Facebook
2) затем выберите платформу в приложении для лучшего понимания см. Следующий снимок экрана
3) Выберите ios и следуйте всем шагам в мастере
4) затем перейдите к графику API изучить https://developers.facebook.com/tools/explorer/145634995501895/
5) выберите ваше приложение в графе api explorer.
6) Нажмите "Получить токен". Затем нажмите "Получить токен доступа" в поле "Получить токен". Вы можете увидеть множество разрешений для лучшего понимания.
7) Для проверки вашего разрешения на включение или выключение для получения названия альбома и изображений, отображаемых после снимка экрана
если разрешение user_photos не включено, то отобразится ошибка, см. следующий снимок экрана
После выполнения шага 7 либо перейдите к приведенным ниже шагам, либо просто загрузите файлы кодирования. Я поставил ссылку Где вы можете скачать
Кодирование файлов для цели c
https://www.dropbox.com/s/1ysek035ek88xuw/FacebookAlbum%20Demo.zip?dl=0
8) если не отображается сообщение об ошибке, следующий код в вашем методе viewDidLoad в view controller.this код для получения названия альбома и идентификатора альбома.
цель C
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) теперь получаются фотографии обложки альбома следующего типа кода в ячейке таблицы для строки
цель C
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) Теперь код для получения идентификатора фотографии альбома.
// code in **table didselect method**
цель C
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) другой контроллер представления один теперь код для получения изображений в коллекцию просмотра cellforRow
цель C
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) После получения данных вы должны отправить свое приложение на Facebook, чтобы отправить, вы можете заполнить информацию в
1) детали приложения
2) статус и обзор
=====
Если у вас есть какие-либо вопросы, я помогу вам
наслаждайтесь счастливым кодированием.
Facebook iOS SDK пока не предоставляет такой возможности. Вместо этого я нашел сторонний класс, который делает то же самое. https://github.com/OceanLabs/FacebookImagePicker-iOS/