Проблема в размещении изображения на Facebook в iPad - PullRequest
0 голосов
/ 17 июня 2011

Я работаю над приложением для iPad. Я хочу опубликовать изображение на Facebbok. Я использовал этот процесс для интеграции с Facebook так же, как в iPhone. Моя проблема в том, что изображение не публикуется на Facebook, но в iPhone оно работает.

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 в iPad.

Заранее спасибо.

1 Ответ

1 голос
/ 18 июня 2011

Предполагается, что вы используете последнюю версию iOS iOS SDK Facebook и объявили экземпляр класса Facebook с именем facebook:

Сначала проверьте права доступа

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

Ответы на запрос аутентификации будут доступны через методы делегата ниже. Здесь вы можете сохранить 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

Надеюсь, если поможет. Рог

...