1

Facebookに画像を投稿するためにこのコードを使用していますが、Facebookに画像のURLも表示されます。この 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 に答える