2011-06-17 10 views
0

私はiPadアプリケーションに取り組んでいます。私がFacebbokにImageを投稿したいと思っています。私はiPhoneと同じようにfacebookの統合のためにプロセスを使用しました。 私の問題は、イメージはFacebookに投稿されていませんが、iPhoneでは動作しています。iPadでFacebookに画像を投稿する際の問題

Code: 


    // code to post image to facebook 
    //update user facebook status 
-(void)setUsersStatus:(UIImage *)crtImage 
    { 

    UIGraphicsBeginImageContext(CGSizeMake(480.0,320.0)); 


    // Draw the original image 
    [crtImage drawInRect:CGRectMake(0,0,480,320)]; 



    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    NSMutableDictionary *args = [[[NSMutableDictionary alloc] init] autorelease]; 
    [args setObject:@"caption" forKey:@"caption"];  
    FBRequest *uploadPhotoRequest = [FBRequest requestWithDelegate:self]; 
    NSData *data = UIImagePNGRepresentation(newImage); 



    [uploadPhotoRequest call:@"photos.upload" params:args dataParam:data]; 

    } 





    // used to post image to facebook 

    -(void)sentAction:(id)sender 
    { 
    IpadComicBuilderAppDelegate* appDelegate =(IpadComicBuilderAppDelegate*) [ [UIApplication sharedApplication] delegate]; 

    [appDelegate.facebookObject tryToUpdateStatus:fbImage]; 
    [self.navigationController dismissModalViewControllerAnimated:YES]; 
    } 

誰でも私に画像をFBで投稿する方法を教えてください。

ありがとうございました。認証要求に

チェック権限のための最初の

- (void)setupFacebook 
{ 
    NSString *accessToken = [[NSUserDefaults standardUserDefaults] stringForKey:@"FBAccessToken"]; 
    NSDate *tokenExpiryDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"FBExpirationDate"]; 
    facebook.accessToken = accessToken; 
    facebook.expirationDate = tokenExpiryDate; 
    if ([facebook isSessionValid] == NO) 
    { 
     NSLog(@"Not logged in yet. Let's do it!"); 
     NSArray *permissions = [NSArray arrayWithObjects:@"read_stream", @"offline_access", @"publish_stream", nil]; 
     [facebook authorize:permissions delegate:self]; 
    } else { 
     NSLog (@"Already logged in and ready to roll."); 
     [self uploadPhoto] 
    } 
} 

応答が利用できるようになります:あなたは、最新のFacebookのiOS SDKを使用して、あなたがfacebookと呼ばれるFacebookクラスのインスタンスを宣言したことをしていると仮定すると、

+0

おそらく応答が返ってきています。回答には何がありますか? –

答えて

1

以下のデリゲートメソッドを介してここで、accessTokenとtokenExpiryDateをNSUserDefaultsに保存して、ログイン資格情報を保持することができます。

-(void)fbDidLogin 
-(void)fbDidNotLogin:(BOOL)cancelled 

あなたはログインして必要な権限を持っているしたら、それはアップロードコールへ

- (void)uploadPhoto 
{ 
    UIImage *image = // Your image here 
    NSString *graphPath = @"me/photos"; 
    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:image, @"picture", "Test caption", "caption"]; 
    [facebook requestWithGraphPath:graphPath andParams:params andHttpMethod:@"POST" andDelegate:self]; 
} 

応答は以下のデリゲートメソッドを経由して利用できるようになります。このメソッドを呼び出すために大丈夫だ:

- (void)request:(FBRequest *)request bodyDataUploadProgress:(CGFloat)progress 
- (void)request:(FBRequest *)request didLoad:(id)result 
- (void)request:(FBRequest *)request didFailWithError:(NSError *)error 

希望があれば Rog

関連する問題