1

我正在使用此代码在 facebook 上发布图像,但它也在 facebook 上显示图像 url。我想隐藏这个网址:

这是我将图像发布到 facebook 的代码

#pragma mark Facebook 

-(void)facebook
{
    AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
        @"I'm using Shape App", @"message",  @"I'm using Shape App", @"caption",
        @"http://www.imageurlhost.com/images/3kft472rvl2qtnzx11_Sample.png", @"picture",
        @"I'm using Shape App", @"title",nil];
    [[delegate facebook] dialog:@"feed" andParams:params andDelegate:self];
  }

请检查下面的图片

在此处输入图像描述

4

2 回答 2

1

您正在做的是发布一个 URL,因此它显示为:您共享的链接。此链接是否指向图像而不是网站并不重要。

您可以更改的选项是,

a) 将链接发布到包含图像的 Open Graph 页面,然后您可以设置将显示该共享链接的标题和描述,或者

b)将其发布为真实照片,https://developers.facebook.com/docs/reference/api/user/#photos

于 2012-11-05T11:40:01.217 回答
1

我已经通过最新的 ios6 facebook 集成解决了这个问题:为此,您必须导入 Social.framework,然后将此代码放入您要调用 Facebook 的方法中。但它仅适用于 iOS 6 及更高版本

       NSData *imageData=[NSData dataWithContentsOfURL:[NSURL urlWithString:@"http://www.imageurlhost.com/images/3kft472rvl2qtnzx11_Sample.png"]];
 if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])

   {
    mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
    [mySLComposerSheet setInitialText:[NSString stringWithFormat:@"I am using Shape App"]];
    [mySLComposerSheet addImage:[UIImage imageWithData:imageData]];
    [self presentViewController:mySLComposerSheet animated:YES completion:nil];
   }

  else

   {
    UIAlertView *alertView=[[UIAlertView alloc]initWithTitle:@"No Facebook Account" message:@"There are no Facebook accounts configured.You can add or create a Facebook account in Settings" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
    [alertView show];
}
[mySLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result)
 {
   // NSLog(@"dfsdf");

    switch (result) {
        case SLComposeViewControllerResultCancelled:

            break;
        case SLComposeViewControllerResultDone:

            break;
        default:
            break;
    }

}];
于 2012-11-06T11:32:47.663 回答