gpt4 book ai didi

iOS :How to get Facebook Album Photo's Picker

转载 作者:IT王子 更新时间:2023-10-29 05:23:01 25 4
gpt4 key购买 nike

Facebook iOS SDK 是否像 UIImagePickerController 那样提供任何默认的 (Facebook) 相册照片选择器?

我听说过这个所以搜索了很长时间但找不到任何东西。

如果有人对此有任何想法,请告诉我。如果不是,那么我肯定需要自己制作。

最佳答案

从 Facebook 导入

无需第三方工具即可从 Working For graph api 2.4、2.5、2.6、2.7、2.8 和 Facebook graph api 2.10 相册中获取 facebook 照片

1) 在Facebook开发者账户中添加应用

2) 然后在应用程序中选择平台以便更好地理解,请参见以下屏幕截图

enter image description here

3) 选择 ios 并按照向导中的所有步骤显示

4) 然后去graph api explore https://developers.facebook.com/tools/explorer/145634995501895/

5) 在 graph api explorer 中选择您的应用程序以获得更多了解显示屏幕截图

enter image description here

6) 点击 Get token ..然后在 get token 中点击 get access token 你可以看到这么多权限以便更好地理解看图片

enter image description here

7) 用于检查您的权限以获取相册名称和图像在屏幕截图后显示

enter image description here

如果 user_photos 权限未打开,则显示错误,请参见以下屏幕截图 enter image description here

完成第 7 步后,请执行以下步骤或仅下载编码文件。我已经把链接放在那里你可以下载

objective-c 的编码文件

https://www.dropbox.com/s/1ysek035ek88xuw/FacebookAlbum%20Demo.zip?dl=0

8) 如果没有错误显示,则在 View Controller 的 viewDidLoad 方法中执行以下代码。此代码用于获取相册名称和相册 ID。

Objective-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) 现在在 tableview cell for row

中输入代码后获取相册封面照片

Objective-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) 现在是获取相册照片 ID 的代码。

 // code in **table didselect method**

Objective-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) 另一个 View Controller 现在代码用于在 collection view cellforRow

中获取图像

Objective-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)现状与回顾

=====

如果您有任何疑问,我会帮助您

享受快乐的编码。

关于iOS :How to get Facebook Album Photo's Picker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30207465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com