2011-09-27 82 views
0

如何通过iphone以编程方式在Facebook墙上张贴大图。我正在使用FBConnect API,我该如何实现这一目标。在Facebook上发布大图

感谢

+0

即使您发送原始图像,Facebook将自动调整为720x720(或东西)试试这个。因此,Facebook建议在发送前将图像大小调整为最大720px,以节省发送时的用户流量/时间。 – jamapag

回答

0

Facebook的docs说:

强烈建议您将其添加到请求之前扩展应用程序中的图像。最大尺寸应该至多为720像素(Facebook支持的最大显示尺寸)。

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