我的应用程序中有以下代码:
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将其转换为所述用户的个人资料链接?
答案 0 :(得分:4)
我也一直在寻找答案。 facebook网站使用以下格式:
@ [139730900025:PhotoGrabber]非常棒
代表链接,但我无法做到这一点。我在facebook论坛的“Stream”类别下重新发布了一个帖子,因为你的帖子没有得到任何关注:
答案 1 :(得分:1)
现在可以通过打开图表部分提及它。您只能在发布打开的图表时使用ACTION
检查: https://developers.facebook.com/docs/opengraph/mention_tagging/
似乎仍然无法通过API
在经典Feed发布中使用@mention标记答案 2 :(得分:0)
我很确定目前这是不可能的。如果它是通过使用tam7t建议它应该工作的格式是可行的...你最好的选择是要求他们将它添加到他们的api流解析器。
答案 3 :(得分:0)
目前这是不可能的,抱歉。
答案 4 :(得分:0)
AFAIK facebook的API不允许这样做。我目前唯一知道的方法是使用tam7t的答案描述的格式编写一个屏幕抓取器来完成这些帖子。如果您使用Facebook网站的移动版本(m.facebook.com),它会更容易。
注意:这可能违反了Facebook的申请服务条款。
编辑: 下面是一些使用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帐户发布帖子。
那说回到最初将@mention放在墙上的帖子中的问题,我注意到虽然帖子和@mention在墙上很好,但是这个方法并没有将帖子传播到提到的用户/页面的墙。不确定这对你来说是否重要。