代表用户在朋友的墙上张贴

时间:2010-08-21 08:22:35

标签: facebook facebook-graph-api

我正在编写一个Facebook应用程序,需要代表用户在朋友的墙上发布,但不在画布应用程序的范围内。我有以下内容:

  • App ID
  • App secret
  • 海报的publish_stream权限

理论上这应该足以做我想做的事。我目前在做什么:

  1. 使用应用ID和应用密钥获取代表我的应用的OAuth令牌(请参阅“作为应用验证”here)。
  2. 尝试使用/ friends_wall / feed上的POST(请参阅here)和步骤1中检索到的OAuth令牌在我朋友的墙上发布。

然而,这最终会在朋友的墙上张贴为朋友而不是用户(该应用还具有该朋友的publish_stream权限)。这并不是太意外,因为在这个过程中我没有指定海报应该是谁。

我的问题是:是否可以为代表用户的应用获取OAuth令牌?如果没有,有没有办法在画布应用程序范围之外发布用户的朋友的墙?

谢谢,
Ashoat

2 个答案:

答案 0 :(得分:3)

使用以下代码在朋友墙上发帖:

NSMutableDictionary *paramspost = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   @"My test app", @"name",
                                   @"http://www.google.com", @"link",
                                   @"FBTestApp app for iPhone!", @"caption",
                                   @"This is a description of my app", @"description",
                                   @"Hello!\n\nThis is a test message\nfrom my test iPhone app!", @"message",
                                   nil];

// Publish.
// This is the most important method that you call. It does the actual job, the message posting.
[ facebook requestWithGraphPath:@"100001433267690/feed" andParams:paramspost andHttpMethod:@"POST" andDelegate:self];

其中“100001433267690”应该是您在Facebook的朋友用户ID

答案 1 :(得分:2)

实际上,我想我已经找到了答案。我认为在新的OAuth API中没有办法实现它,但似乎有一种方法可以使用较旧的REST API。请参阅文档here

只需将我的问题中的第2步替换为上述文档,仍然使用步骤1中的OAuth令牌,您应该做得很好:)