我目前正在将我的iOS原生应用程序连接到Facebook页面,以便向该墙发布消息。我可以访问墙,但由于某种原因,没有消息文本设置。我向用户询问了“publish_stream”权限。
知道我做错了什么吗?这是我的代码:
NSMutableDictionary *message = [NSDictionary dictionaryWithObjectsAndKeys:@"some text", @"message", @"http://path/to/itunes/", @"link", nil];
NSString *changeJSON = [message JSONRepresentation];
NSLog(@"changeJSON: %@", changeJSON);
NSData *myPostData = [changeJSON dataUsingEncoding:NSUTF8StringEncoding];
NSString *myURL = [NSString stringWithFormat:@"https://graph.facebook.com/pageId/feed?access_token=%@", facebook.accessToken];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:myURL] cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:10.0];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:[NSString stringWithFormat:@"%d", [myPostData length] ] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody: myPostData];
NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse: nil error: nil ];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding: NSUTF8StringEncoding];
NSLog(@"return string: %@", returnString);
[facebook logout:self];
编码到NSData对象的字符串如下:
{"message":"some text","link":"http://path/to/itunes/"}
谢谢,祝你有个愉快的一天: - )
答案 0 :(得分:1)
看起来您正在尝试将JSON发布到GraphAPI?如果是这样,您不能将JSON发布到Facebook,而是在发布时必须使用参数(查询字符串或HTTP请求参数)。
所有发布操作都是通过带有参数的HTTP POST完成的,所有响应都是以JSON完成的。您可以通过Graph API reference under publishing了解更多信息。
请参阅:POST Reference。