【问题标题】:Post on a friend's wall on behalf of a user代表用户在朋友的墙上发帖
【发布时间】:2010-08-21 08:22:34
【问题描述】:

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

  • 应用 ID
  • 应用密码
  • 发布者的publish_stream 权限

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

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

但是,这最终会以朋友而不是用户的身份在朋友的墙上发帖(该应用还拥有该朋友的 publish_stream 权限)。这并不太出人意料,因为在这个过程中我没有指定海报应该是谁。

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

谢谢,
阿肖特

【问题讨论】:

  • 请注意,从 2013 年 2 月 6 日起,您将无法再通过 API 发布到其他用户的墙上,请参阅 developers.facebook.com/roadmap 在此之后唯一可行的方法是使用提要对话框,让用户主动触发它。

标签: facebook facebook-graph-api


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    其实,我想我已经在这里找到了答案。我认为新的 OAuth API 没有办法做到这一点,但旧的 REST API 似乎确实有办法。请参阅文档here

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

    【讨论】:

    • 其实我想我在 Facebook 聊天 Ashoat 上找到了答案 ;)
    • 我认为 facebook 想摆脱这个功能,它可能被滥用得太多了。
    猜你喜欢
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多