2012-04-05 29 views
0

我将下面的代码发布到用户的Facebook墙上的UIImage是行不通的。我看了一下示例代码,伴随着Facebook SDK和它的工作正常。我无法找到我的代码出了什么问题。将UImage上传到facebook

-(void) shareOnFacebook 
{ 
facebook = [[Facebook alloc] initWithAppId:@"MYAPPID" andDelegate:(id)self]; 

NSArray * neededPermissions = [[NSArray alloc] initWithObjects:@"offline_access",@"user_about_me", @"publish_stream", @"user_photos", nil] ; 
[facebook authorize:neededPermissions ]; 

if (![facebook isSessionValid]) 
{ 





    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
            img, @"picture", 
            nil]; 
    [facebook requestWithGraphPath:@"me/photos" 
            andParams:params 
           andHttpMethod:@"POST" 
            andDelegate:(id)self]; 



} 

}

,请告诉我,什么都可以的问题?

在此先感谢..

回答

2

您需要的委托方法- (void)fbDidLogin被称为..尝试做这样的,它应该工作

- (void)fbDidLogin { 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:[fb accessToken] forKey:@"FBAccessTokenKey"]; 
    [defaults setObject:[fb expirationDate] forKey:@"FBExpirationDateKey"]; 
    [defaults synchronize]; 

    [self uploadImageWithName:yourImageName]; 
} 


- (void) uploadImageWithName : (NSString*)name 
{ 
    NSString *img = [NSString stringWithFormat:@"%@.PNG",name]; 
    UIImage *uploadImage = [UIImage imageNamed:img]; 

    NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
            [fb accessToken], 
            @"access_token",nil]; 

    [params setObject:uploadImage forKey:@"source"]; 

    [fb requestWithGraphPath:@"me/photos" 
          andParams: params 
         andHttpMethod: @"POST" 
          andDelegate:self]; 

} 
0

它没有任何意义,是吗?您询问facebook对象,如果会话有效,如果不是,则继续上传照片。我不知道代码的其余部分是否正常,但至少尝试删除条件或将其更改为if ([facebook isSessionValid])并查看是否有帮助。

+0

我试图改变/删除条件的建议......没事后致电上传功能解决了 – Shubham 2012-04-05 07:33:50

相关问题