Размещение большего изображения на Facebook - PullRequest
0 голосов
/ 27 сентября 2011

Как разместить большое изображение на стене Facebook через iphone программно. Я использую FBConnect API, как я могу добиться этого.

Спасибо

Ответы [ 3 ]

0 голосов
/ 27 сентября 2011
-(void)postMessageWithPictureOnFB{


    NSString *urlString = [[NSString alloc] initWithFormat:@"https://graph.facebook.com/me/photos"];
    NSURL *url = [[NSURL alloc] initWithString:urlString];

    NSData *picture_data =  UIImagePNGRepresentation([UIImage imageNamed:@"apple.png"]);
    NSMutableData *body = [[NSMutableData alloc] initWithCapacity:1];
    NSString *boundary = [[NSString alloc] initWithString:@"----1010101010"];
    NSString *contentType = [[NSString alloc] initWithFormat:@"multipart/form-data; boundary=%@",boundary];

    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"Content-Disposition: form-data; name=\"message\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[textView.text dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"media\";\r\nfilename=\"media.png\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:picture_data];
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[@"Content-Disposition: form-data; name=\"access_token\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[facebook.accessToken dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

    serverRequest = [ASIHTTPRequest requestWithURL:url];
    [serverRequest addRequestHeader:@"Content-Type" value:contentType];
    [serverRequest appendPostData:body];
    [serverRequest addRequestHeader:@"Content-Length" value:[NSString stringWithFormat:@"%d", body.length]];
    //[serverRequest setDelegate:self];
    //[serverRequest setDidFinishSelector:@selector(postMessageWithPictureOnFBRequestDone:)];
    //[serverRequest setDidFailSelector:@selector(postMessageWithPictureOnFBRequestWentWrong:)];
    [serverRequest startAsynchronous];

    [urlString release];
    [url release];
    [body release];
    [boundary release];
    [contentType release];
}
0 голосов
/ 27 сентября 2011

Попробуйте это с Graph API

 - (IBAction)uploadPhoto:(id)sender {

NSString *path = @"http://www.facebook.com/images/devsite
                     /iphone_connect_btn.jpg";
 NSURL *url = [NSURL URLWithString:path];
 NSData *data = [NSData dataWithContentsOfURL:url];
 UIImage *img  = [[UIImage alloc] initWithData:data];

 NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                             img, @"picture",
                             nil];

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

[img release];

}

0 голосов
/ 27 сентября 2011

Facebook документы сказал:

Настоятельно рекомендуется масштабировать изображение в вашем приложении, прежде чем добавить его в запрос.Максимальное измерение должно быть не более 720 пикселей (самый большой размер экрана, поддерживаемый Facebook).

...