2011-09-27 74 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]; 
}