上传照片到脸书问题。错误的照片方向

时间:2012-06-20 06:35:46

标签: iphone facebook image facebook-graph-api

我将照片上传到脸书。 如果照片宽度>高兴,一切都好。 但如果高度>宽度,Facebook显示照片,所以在Facebook帐户照片显示宽度>高度,但(当然)方向是错误的。 我的代码:

- (void)postImageToFaceBook:(UIImage *)imgSource
{
    [self login];

    currentAPICall = kAPIGraphUserPhotosPost;

    NSString *strMessage = @"This is the photo caption";
    NSMutableDictionary* photosParams = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                         imgSource,@"source",
                                         strMessage,@"message",
                                         nil];

    NSLog(@"Begin sending photo\n\n");
    [_facebook requestWithGraphPath:@"me/photos"
                          andParams:photosParams
                      andHttpMethod:@"POST"
                        andDelegate:self];
}

- (void)login
{
    if (![_facebook isSessionValid]) {
        NSArray *permissions = [[NSArray alloc] initWithObjects:
                                @"user_photos",
                                nil];
        [_facebook authorize:permissions];
        [permissions release];
    }
}

- (void)logout
{
    [_facebook logout];
}


#pragma mark - FBRequestDelegate

- (void)request:(FBRequest *)request didLoad:(id)result {
    NSLog(@"Request load\n\n");
    [self hideHud];

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

    switch (currentAPICall) {
        case kAPIGraphPhotoData: // step 3
        {
            NSLog(@"sending to wall\n\n");
            // 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;


            NSMutableDictionary* dialogParams = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                                 kAppId, @"app_id",
                                                 imageLink, @"link",
                                                 thumbURL, @"picture",
                                                 @"Photo from my iPhone application", @"name",
                                                 @"The app", @"caption",
                                                 @"it is fun to use", @"description",
                                                 nil];

            [_facebook dialog:@"feed" 
                    andParams:dialogParams 
                  andDelegate:self];


            break;
        }
        case kAPIGraphUserPhotosPost: // step 2
        {
            NSLog(@"getting data\n\n");
            [self showHudWithMessage:@"Getting image data"];
            NSString *imageID = [NSString stringWithFormat:[result objectForKey:@"id"]];            
            NSLog(@"id of uploaded screen image %@",imageID);

            currentAPICall = kAPIGraphPhotoData;

            [_facebook requestWithGraphPath:imageID
                                andDelegate:self];

            break;
        }
        default:
            break;
    }
}


#pragma mark - FBDialogDelegate

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

在postImageToFaceBook中,我检查图像大小是完全没有我的图像宽度<高度。宽度约为2200,高度为3300,facebook专辑图像的宽度为>高度。

提前谢谢!

2 个答案:

答案 0 :(得分:0)

其实facebook没有对Image做任何事情。 iPhone在纵向模式下显示所有图像,它处于横向模式。所以请检查系统上的图像。

由于

答案 1 :(得分:0)

我解决了这个问题。 此行为是当图像宽度约为2000像素时,但如果宽度小于1000像素,则一切正常。