gpt4 book ai didi

ios - Facebook iOS SDK : Cannot specify an album using FBRequest's requestForUploadPhoto:

转载 作者:可可西里 更新时间:2023-11-01 03:52:38 27 4
gpt4 key购买 nike

我的 iPhone 应用程序中有一张本地照片,我想将它上传到 Facebook 上专用于我的应用程序的特定相册。

问题:我的应用名称以“照片”一词结尾,因此默认的 Facebook 相册是 APP_NAME Photos Photos - 显然是个问题。

目标:我想创建一个新相册,将其 ID 存储在 NSUserDefaults 中,并且(在运行时进行一些验证后)将其用于所有 future 上传的照片应用程序。

我在哪里:我可以通过 Open Graph 创建新相册,使用我想要的名称和描述,我可以检索它的 ID。我也可以很容易地上传照片。但是,我无法弄清楚的是如何指定上传照片的最终位置!

代码:这是我的照片上传代码,其中包含一些结果。我假设这就是我的问题所在,因为相册创建等工作正常。

- (void)postPhotosToFacebook:(NSArray *)photos withAlbumID:(NSString *)albumID {

// Just testing with one image for now; I'll get in to multiple later..
UIImage *image = [photos lastObject];

FBRequest *imageUploadRequest = [FBRequest requestForUploadPhoto:image];

// CALL OUT: I'm guessing my problem is here - but I just don't know!
[[imageUploadRequest parameters] setValue:albumID
forKey:@"album"];

DebugLog(@"imageUploadRequest parameters: %@",[imageUploadRequest parameters]);

// Results of DebugLog:
// imageUploadRequest parameters: {
// album = 10151057144449632;
// picture = "<UIImage: 0xc6b6920>";
// }
// The album data returns correctly using FB's Graph API explorer tool,
// so I know it's a legit album.
// https://developers.facebook.com/tools/explorer

FBRequestConnection *connection = [[FBRequestConnection alloc] init];

[connection addRequest:imageUploadRequest
completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {

if (!error) {

DebugLog(@"Photo uploaded successfuly! %@",result);

// Results of DebugLog:
//
// Photo uploaded successfuly! {
// id = 10151057147399632;
// "post_id" = "511304631_10151057094374632";
// }
// Again, the photo at that ID shows up correctly, etc -
// BUT it's in the wrong album! It shows up in the default app album.

} else {

DebugLog(@"Photo uploaded failed :( %@",error.userInfo);
}

}];

[connection start];

}

猜测:我猜我的问题出在我如何将我的相册 ID 参数分配给图像请求的某个地方。但我没有任何线索。

你可以在this URL看到这应该是可能的..

最佳答案

啊甜蜜。我通过一些老式的、直截了当的修补来解决这个问题。

鉴于没有关于如何将“专辑”值应用于 FBRequest 的真正说明,我犹豫是否将其称为错误,但无论哪种方式我都需要不同的方法 - 在这种情况下,只需创建一个通用的 Open Graph HTTP 请求并填写所有图片信息。

这种方法没有真正的缺点;除了不能使用 requestForUploadPhoto: 便捷方法。

这是我实现的正确方法(删除的代码被注释掉):

- (void)postPhotosToFacebook:(NSArray *)photos withAlbumID:(NSString *)albumID {

UIImage *image = [photos lastObject];

// FBRequest *imageUploadRequest = [FBRequest requestForUploadPhoto:image];
//
// [[imageUploadRequest parameters] setValue:albumID
// forKey:@"album"];
//
// DebugLog(@"imageUploadRequest parameters: %@",[imageUploadRequest parameters]);

NSString *graphPath = [NSString stringWithFormat:@"%@/photos",albumID];

DebugLog(@"graphPath = %@",graphPath);

NSDictionary *parameters = [NSDictionary dictionaryWithObjectsAndKeys:
image,@"picture",
nil];

FBRequest *request = [FBRequest requestWithGraphPath:graphPath
parameters:parameters
HTTPMethod:@"POST"];

FBRequestConnection *connection = [[FBRequestConnection alloc] init];

[connection addRequest:request
completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {

if (!error) {

DebugLog(@"Photo uploaded successfuly! %@",result);

} else {

DebugLog(@"Photo uploaded failed :( %@",error.userInfo);
}

}];

[connection start];

}

关于ios - Facebook iOS SDK : Cannot specify an album using FBRequest's requestForUploadPhoto:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12486852/

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