2012-04-05 5 views
0

UIImageをユーザーのFacebookの壁に投稿するための私の次のコードは動作しません。facebook sdkとその動作上の罰金に関するサンプルコードを調べました。私は自分のコードで間違っていることを見つけることができません。facebookにUImageをアップロードする

-(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

iが条件を削除/変更しようとした動作するはずです...何と呼ばされていないデリゲートメソッドの後にアップロード機能を呼び出す必要がありますうまくいった – Shubham

関連する問題