3

我的应用程序中有如下代码:

message = "Hi, @John Doe!"
postID = fb.stream.publish(
    message = loader.render_to_string('wall_post.phtml', {'message':message}),
    action_links = simplejson.dumps([{'text': "Check out blah", 'href': "http://blah.dev"}]),
    target_id = 'nf'
)

有什么方法可以在消息字符串中表示 facebook @mention,以便 facebook 将其转换为所提及用户的个人资料链接?

4

5 回答 5

4

我也一直在寻找这个问题的答案。facebook 网站使用以下格式:

@[139730900025:PhotoGrabber] 太棒了

代表链接,但我无法完成这项工作。由于您的帖子没有引起任何关注,因此我在 facebook 论坛上的“Stream”类别下重新发布了一个帖子:

http://forum.developers.facebook.com/viewtopic.php?id=47885

于 2009-12-19T17:12:30.223 回答
1

提及它现在可以通过开放图部分获得。您只能在发布开放图操作时使用

检查: https ://developers.facebook.com/docs/opengraph/mention_tagging/

在通过 API 发布的经典提要中使用 @mention 标记似乎仍然是不可能的

于 2012-11-07T20:51:48.820 回答
0

我很确定目前这是不可能的。如果可以使用 tam7t 建议的格式,它应该可以工作......你最好的选择是要求他们将其添加到他们的 api 流解析器中。

于 2010-08-14T06:51:04.137 回答
0

目前无法实现,抱歉。

于 2010-08-18T15:57:51.380 回答
0

AFAIK facebook 的 API 不允许这样做。目前我所知道的唯一方法是使用 tam7t 的答案描述的格式编写一个屏幕抓取工具来完成这些帖子。如果您使用 facebook 网站 (m.facebook.com) 的移动版本,它会更容易。

注意:这可能违反了 Facebook 的应用程序服务条款。

编辑:这里有一些 ruby​​ 代码可以解决问题,使用Mechanize Gem

require 'mechanize'

agent = Mechanize.new
agent.user_agent_alias = 'Mac Safari'

page = agent.get('http://m.facebook.com')
form = page.forms.first
# enter credentials
form.pass = 'user password'
form.email = 'user@example.com'
page = agent.submit form

# go straight to page to post on 
page = agent.get("http://m.facebook.com/wall.php?id=PAGE_ID_NUM")
form = page.forms.first
form.message = "@[139730900025:PhotoGrabber] is awesome"
page = agent.submit form

注意:显然(正如 tiagoboldt 善意地指出的那样)在您的应用程序中存储/使用其他人的凭据是错误的。这种方法仅适用于从您控制的 Facebook 帐户发布帖子。

也就是说,回到将@提及放在墙上的原始问题,我注意到虽然帖子和@提及在墙上很好,但这种方法不会将帖子传播到提到的用户/页面的墙上。不确定这对你是否重要。

于 2010-10-26T02:42:08.340 回答