我想在Facebook朋友的墙上发帖,我尝试了这两种方法但没有工作:
1
//post on wall
NSMutableDictionary *variables = [[NSMutableDictionary alloc]initWithCapacity:1];
[variables setObject:@"v" forKey:@"message"];
[graphref doGraphPost:[NSString stringWithFormat:@"1389799421/feed"] withPostVars:variables];
//post on wall
2
[_facebook requestWithGraphPath:@"1389799421/feed"
andParams:[NSMutableDictionary dictionaryWithObject:@"test wall post" forKey:@"message"]
andHttpMethod:@"POST"
andDelegate:self];
......我无法理解为什么!在Facebook网站上,我添加了捆绑包和权限。
答案 0 :(得分:2)
Facebook最近在开发者博客中宣布,通过API will not be possible any more from Feb 2013 on发布到另一个用户的墙上:我想在Facebook好友的墙上发帖
删除通过图谱API发布到朋友圈的功能
我们将删除通过Graph API发布到用户朋友的墙上的功能。具体来说,针对[user_id] / feed的帖子,其中[user_id]与会话用户不同,或者stream_publish调用,其中target_id用户与会话用户不同,将失败。如果您想让人们发布到朋友的时间表,请调用feed dialog。
所以我认为现在开始开发这样的功能是没有用的。
答案 1 :(得分:1)
首先,您必须使用发布权限打开会话。具体而言,您必须申请publish_stream
权限。
NSArray * permissions = [[NSArray alloc] initWithObjects:@"publish_stream", nil];
return [FBSession openActiveSessionWithPublishPermissions:permissions defaultAudience:FBSessionDefaultAudienceFriends allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
[self sessionStateChanged:session
state:status
error:error];
}];
如果您具有发布权限,则可以创建并发送请求。确保将access_token
作为参数之一。如果不这样做,您将收到身份验证错误。
NSDictionary * postParameters = [NSDictionary dictionaryWithObjectsAndKeys:_textView.text, @"message", FBSession.activeSession.accessToken, @"access_token", nil];
NSString * graphPath = @"ID_NUMBER_HERE/feed";
FBRequest * request = [FBRequest requestWithGraphPath:graphPath parameters:postParameters HTTPMethod:@"POST"];
[[request initWithSession:FBSession.activeSession graphPath:graphPath parameters:postParameters HTTPMethod:@"POST"] startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
NSLog(@"Successful posted to Facebook");
}];
}