Iphone 无法使用SLComposeViewController将图像发布到facebook?

Iphone 无法使用SLComposeViewController将图像发布到facebook?,iphone,facebook,image,ios6,slcomposeviewcontroller,Iphone,Facebook,Image,Ios6,Slcomposeviewcontroller,我想把图片发布到facebook和twitter上。我可以使用twitter,但不能使用SLComposeViewController类使用facebook。没有了添加图像,我就可以将文本和url发布到facebook上。问题是,当我使用“添加图像”时,我无法发布此图像以及文本、url。SLComposeViewController在我发送时显示图像、文本和url。我有正确的appId,没有收到任何错误。但问题仍然存在。我不知道问题出在哪里。请帮帮我 - (void)performFBR

我想把图片发布到facebook和twitter上。我可以使用twitter,但不能使用SLComposeViewController类使用facebook。没有了添加图像,我就可以将文本和url发布到facebook上。问题是,当我使用“添加图像”时,我无法发布此图像以及文本、url。SLComposeViewController在我发送时显示图像、文本和url。我有正确的appId,没有收到任何错误。但问题仍然存在。我不知道问题出在哪里。请帮帮我

    - (void)performFBRequestUploadForImage{

        [self showListOfFaceBookAccountsFromStore];
                if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
            {
                SLComposeViewController *mySLComposerSheet = [SLComposeViewController         composeViewControllerForServiceType:SLServiceTypeFacebook];

                 SLComposeViewControllerCompletionHandler __block completionHandler=^(SLComposeViewControllerResult result){

                     NSString *output;
                    switch (result) {
                        case SLComposeViewControllerResultCancelled:
                            output = @"ACtionCancelled";
                            break;
                        case SLComposeViewControllerResultDone:
                            output = @"Post Successfull";
                            [self dismissViewControllerAnimated:YES completion:nil];
                            break;
                        default:
                            break;
                    }
                    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Face Book Message" message:output delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
                    [alert show];
                 };

                [mySLComposerSheet addImage:[UIImage imageNamed:@"images4.jpg"]];
                [mySLComposerSheet setInitialText:@"I am developer."];
                [mySLComposerSheet addURL:[NSURL URLWithString:@"http://stackoverflow.com/"]];
                [mySLComposerSheet setCompletionHandler:completionHandler];
                [self presentViewController:mySLComposerSheet animated:YES completion:nil];
            }

    }

- (void)showListOfFaceBookAccountsFromStore
{
    ACAccountStore *accountStore = [[ACAccountStore alloc] init];
    ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];


    if( [SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook] )
    {

        NSDictionary *options = @{
        @"ACFacebookAppIdKey" : myAppId,
        @"ACFacebookPermissionsKey" : @[@"publish_stream"],
        @"ACFacebookAudienceKey" : ACFacebookAudienceFriends};
        [accountStore requestAccessToAccountsWithType:accountType options:options completion:^(BOOL granted, NSError *error){
            if(granted) {
                ACAccount * account = [[accountStore accountsWithAccountType:accountType] lastObject];
                NSLog(@"Facebook user: %@",[account username]);
                if([account username]==NULL){
                    [self facebookAlert];
                } else {



                }

            }
            else{
                  NSLog(@"Read permission error: %@", [error localizedDescription]);
            }
        }];
    } else {
        [self facebookAlert];
    }
}

我在我的项目中使用了下面的代码来发布图像,效果很好

    if([SLComposeViewController instanceMethodForSelector:@selector(isAvailableForServiceType)] != nil)
    {
        if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
        {

            SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

            SLComposeViewControllerCompletionHandler myBlock = ^(SLComposeViewControllerResult result){
                if (result == SLComposeViewControllerResultCancelled) {

                    NSLog(@"Cancelled");

                } else

                {
                    NSLog(@"Done");
                }

                [controller dismissViewControllerAnimated:YES completion:Nil];
            };
            controller.completionHandler =myBlock;

            [controller setInitialText:@"Check out my Christmas Gift!"];
            [controller addImage:@"gift.jpg"];

            [self presentViewController:controller animated:YES completion:Nil];

        }
您只需尝试以下教程


  • 2.

    我查看了互联网,发现最近一两天有一些讨论与这个问题有关,它们似乎与Facebook bug有关。因此,如果您的代码成功地将消息和图像发布到Twitter,那么不要担心!你做得对


    谢谢您的重播。我已经添加了你的代码,但没有得到图像。但当我删除addImage:method时,我在我的脸书中收到了一条消息。你只需检查该图像是否存储在facebook相册中,而不是wall@PrasadG我增加了两个教程,看看吧,谢谢你的建议。你说得对。这些照片在相册中。此代码没有解决我的问题。检查
      I have resolved through open present-view controller in navigation-bar.it may help you.
    
     SLComposeViewController *controller = [SLComposeViewController   composeViewControllerForServiceType:SLServiceTypeFacebook];
        [controller setInitialText:shareFrom];
        [controller addImage:self.photoImageView.image];
        [controller addURL:[NSURL URLWithString:dayCareWebsite]];
        dispatch_async(dispatch_get_main_queue(), ^ {
    
            [self.navigationController presentViewController:controller animated:YES completion:nil];
    
        });