0

我在 facebook 上创建了一个页面,并希望发布到该页面。我的 facebook 用户是该页面的管理员。通过请求“我/帐户”,我取回了该页面的 access_token 和 id,下面的代码发布到该页面。

Facebook* facebook = app.facebook;

NSDictionary* pg = [fbpages objectAtIndex:0]; // page access_token, id and name 
NSLog(@"page %@\n",[pg valueForKey:@"name"]);

NSMutableDictionary *params = [[NSMutableDictionary alloc] init];       

NSString *graphPath = [NSString stringWithFormat:@"%@/feed", [pg valueForKey:@"id"] ];
[params setObject:[pg valueForKey:@"access_token"] forKey:@"access_token"];
[params setObject:@"This is my message coming from my ios app." forKey:@"message"];

// ----- specify that this is a link ----------------------
[params setObject:@"link" forKey:@"type"];
[params setObject:@"http://www.whatever.com" forKey:@"link"];
// ------ this is the difference between case 1 and 2 -----

[facebook requestWithGraphPath:graphPath andParams:params andHttpMethod:@"POST" andDelegate:app];

现在,奇怪的是,(case1)如果我发布一条简单的消息(没有指定链接部分),它会出现在页面上,因为它是由页面发布的,(case2)但是当链接信息存在时,它会出现作为我的帖子。
case1 -以简单消息的 形式出现在时间线的左侧case2 - 以“其他帖子”的形式出现在时间线的右侧,并且页面未呈现,而仅显示“附件”标志。

除了“type”和“link”这两个参数,case 1 和 2 相同。有人遇到过同样的问题吗?有什么建议么?我究竟做错了什么?我希望我发布到页面的链接与它在用户墙上的显示方式相同。

4

1 回答 1

0

好吧,自己想通了。如果我使用给定页面的令牌调用 requestWithGraphPath,它会按预期工作。

所以它看起来像:

facebook.accessToken = [pg valueForKey:@"access_token"];
[facebook requestWithGraphPath:graphPath andParams:params andHttpMethod:@"POST" andDelegate:app];

显然,当请求完成时,您需要重置原始的 accessToken。

于 2012-06-07T06:18:06.043 回答