Как отправить текст и изображения с помощью Facebook API в iPhone SDK? - PullRequest
0 голосов
/ 02 февраля 2011

В своем приложении для iPhone я хочу отправлять текст и изображения на Facebook.

В настоящее время API Facebook предлагает наличие отдельных разрешений для пользователей, которые позволяют нам делать это.

Есть ли выход, где я могу сделать оба, используя только один API в моем проекте?

Если да, как мы можем это сделать?

Ссылки на любые статьи или учебники были бы очень полезны

Пожалуйста, помогите и предложите.

Спасибо

Ответы [ 2 ]

1 голос
/ 19 сентября 2011

Да, вы можете сделать это.

Пожалуйста, ознакомьтесь со всеми методами, как показано ниже:

- (IBAction)uploadPhoto:(id)sender {
    [self postOnFacebook];
}

// Публикация сообщений и фотографий на Facebook Функция

-(void)postOnFacebook
{
NSString *strPostMessage = [self createMessageForPostOnFacebook:74.112 withLongitude:21.85];
//UIImage *img  = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:objClsProductSearch.strProductImageURL]]];
//UIImage *img  = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.facebook.com/images/devsite/iphone_connect_btn.jpg"]]];
UIImage *img  = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://d1xzuxjlafny7l.cloudfront.net/wp-content/uploads/2011/08/HUDTutorial.jpg"]]];

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               strPostMessage,@"message",img, @"source",
                               nil];

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

[img release];
}

// Создать сообщение для публикации в Facebook

-(NSString *)createMessageForPostOnFacebook:(double)pfltLatitude withLongitude:(double)pfltLongitude
{
//NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%f,%f&output=csv",pfltLatitude, pfltLongitude];
//NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%f,%f&output=csv",@"", @""];
//NSError* error;
//NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString] encoding:NSASCIIStringEncoding error:&error];
//NSArray *listItems = [locationString componentsSeparatedByString:@","];
NSString *strMessage = nil;
/*if([[listItems objectAtIndex:0] isEqualToString:@"200"]) 
 {
 strMessage = [NSString stringWithFormat:@"I found a %@ using BH for iPhone \n Location : %@ \n Latitude : %f &  Longitude : %f \n Product Rating : %d",objClsProductSearch.strCategoryname,[locationString substringFromIndex:6],appDelegate.dblLatitude,appDelegate.dblLongitude,btnTmp.tag];
 }*/
strMessage = [NSString stringWithFormat:@"I found a %@ using BH for iPhone \n Location : %@ \n Latitude : %f &  Longitude : %f \n Product Rating : %d", @"Cat Name", @"Location", 74.112, 21.85, 1];

return strMessage;
}

Я надеюсь, что вы будете иметь успех, используя приведенный выше код.

Дайте мне знать, если возникнут трудности.

В вашем делегате приложения посмотрите на методы ниже, реализованы они или нет.

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    //return [[controller facebook] handleOpenURL:url];
    //return [[objPage2ViewController facebook] handleOpenURL:url];
    return [[[self.navigationController topViewController] facebook] handleOpenURL:url];
}

Cheers

0 голосов
/ 10 февраля 2011

Я не уверен, что это возможно. Я разместил изображение со следующим решением:

    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               takedPhoto, @"picture", 
                               @"some text", @"message",             
                               nil];


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

takedPhoto - это UIImage. Но это только загрузка фотографий в фотоальбом (и одобрение, если вы разрешите разрешения при входе в систему). Я не знаю, как я могу разместить сообщение на стене с этим загруженным изображением ... С уважением,

...