使用publish_stream权限从iOS发送帖子到页面

时间:2011-11-17 14:51:38

标签: ios facebook-graph-api fbconnect

我目前正在将我的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/"}

谢谢,祝你有个愉快的一天: - )


1 个答案:

答案 0 :(得分:1)

看起来您正在尝试将JSON发布到GraphAPI?如果是这样,您不能将JSON发布到Facebook,而是在发布时必须使用参数(查询字符串或HTTP请求参数)。

所有发布操作都是通过带有参数的HTTP POST完成的,所有响应都是以JSON完成的。您可以通过Graph API reference under publishing了解更多信息。

请参阅:POST Reference