gpt4 book ai didi

iphone - 使用 Facebook iOS SDK 在用户的墙上发布照片

转载 作者:太空狗 更新时间:2023-10-30 03:11:09 25 4
gpt4 key购买 nike

我正在尝试将相机中的照片上传到用户的 Facebook 墙上。我不完全确定正确的策略是什么,但从周围阅读来看,似乎要做的事情是将照片上传到相册,然后有人在墙上张贴该相册/照片的链接。理想情况下,这将涉及对话,但据我所知,这是不可能的。

我已成功将照片上传到相册,并取回该照片的 ID,但我不确定之后该做什么。

任何人都可以提供一些简单的代码来实现这一点吗?

额外的问题:是否可以将照片也发布到应用程序墙上(或代替)?

编辑:Graph API 更可取,但在这个阶段能正常工作的任何东西都是好的。

最佳答案

我分三步做了

1张贴图片到相册(返回imageID)

2 使用 imageID 请求 imageID 的元数据

3 使用“链接”字段(而不是“来源”字段)作为用户墙上帖子中图片的链接

缺点是现在墙上有两个帖子,一个用于图像,一个用于实际帖子。我还没有想出如何将图片发布到相册,同时没有出现墙上的帖子(理想情况下它只是出现的第二个帖子)

第一步:

- (void) postImageToFacebook {

appDelegate = (ScorecardAppDelegate *)[[UIApplication sharedApplication] delegate];

currentAPICall = kAPIGraphUserPhotosPost;

UIImage *imgSource = {insert your image here};
NSString *strMessage = @"This is the photo caption";
NSMutableDictionary* photosParams = [NSMutableDictionary dictionaryWithObjectsAndKeys:
imgSource,@"source",
strMessage,@"message",
nil];

[appDelegate.facebook requestWithGraphPath:@"me/photos"
andParams:photosParams
andHttpMethod:@"POST"
andDelegate:self];

// after image is posted, get URL for image and then start feed dialog
// this is done from FBRequestDelegate method
}

第 2 步(kAPIGraphUserPhotosPost)和第 3 步(kAPIGraphPhotoData):

- (void)request:(FBRequest *)request didLoad:(id)result {

if ([result isKindOfClass:[NSArray class]] && ([result count] > 0)) {
result = [result objectAtIndex:0];
}

switch (currentAPICall) {
case kAPIGraphPhotoData: // step 3
{
// Facebook doesn't allow linking to images on fbcdn.net. So for now use default thumb stored on Picasa
NSString *thumbURL = kDefaultThumbURL;
NSString *imageLink = [NSString stringWithFormat:[result objectForKey:@"link"]];

currentAPICall = kDialogFeedUser;
appDelegate = (ScorecardAppDelegate *)[[UIApplication sharedApplication] delegate];


NSMutableDictionary* dialogParams = [NSMutableDictionary dictionaryWithObjectsAndKeys:
kAppId, @"app_id",
imageLink, @"link",
thumbURL, @"picture",
@"Just Played Wizard etc etc", @"name",
nil];

[appDelegate.facebook dialog:@"feed"
andParams:dialogParams
andDelegate:self];


break;
}
case kAPIGraphUserPhotosPost: // step 2
{

NSString *imageID = [NSString stringWithFormat:[result objectForKey:@"id"]];
NSLog(@"id of uploaded screen image %@",imageID);

currentAPICall = kAPIGraphPhotoData;
appDelegate = (Scorecard4AppDelegate *)[[UIApplication sharedApplication] delegate];

[appDelegate.facebook requestWithGraphPath:imageID
andDelegate:self];
break;
}
}
}

我修改了代码以仅显示浓缩的 Facebook 内容。如果你想检查帖子是否成功,你需要这样的东西:

- (void)dialogDidComplete:(FBDialog *)dialog {
switch (currentAPICall) {
case kDialogFeedUser:
{
NSLog(@"Feed published successfully.");
break;
}
}
}

facebook post

Facebook 帖子中的蓝色文本是您在第 3 步中输入“名称”参数的任何内容。单击 Facebook 中的蓝色文本将带您转到第 1 步中发布的照片​​,在 Facebook 的相册中(Facebook 创建如果您未指定相册,则为您的应用程序的默认相册)。在我的应用程序中,它是记分卡的全尺寸图像(但可以是任何图像,例如来自相机的图像)。不幸的是,我想不出一种方法来使缩略图图像成为实时链接,但它的可读性不是很好,因此默认缩略图适用于我的情况。 Facebook 帖子(黑色字体)中写着“今年的第一场比赛......”的部分是由用户输入的。

关于iphone - 使用 Facebook iOS SDK 在用户的墙上发布照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6702135/

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