通过API作为页面发布到Facebook页面(具有管理员权限)

时间:2013-09-01 11:54:40

标签: ruby-on-rails ruby facebook facebook-graph-api

我想在Ruby中运行后台服务,每天一次发布到我的Facebook页面。最好的方法是什么?我已经阅读了图谱API,但他们的大部分文档依赖于首先请求用户的权限。如何为我自己使用而不是我的应用的最终用户授予这些权限?例如,Twitter为您提供身份验证令牌以连接到您自己的帐户。

这里有很多关于Graph API的答案已经过时了。我正在使用Ruby,所以任何有关宝石或其网站上的任何SDK的建议。

更新

感谢@oldergod的回复。我有一个更新的问题。

当我这样做时,我可以将myPageName发布到myPageName的墙上。

@graph.put_connections("myPageName", "feed", :message => "I am writing on my wall!")

但是当我这样做时:

@graph.put_connections("me", "feed", :message => "I am writing on my wall!", :link => "http://google.com")

它以myPageName

的身份发布到me

我做错了什么?我已请求manage_pages权限。

1 个答案:

答案 0 :(得分:6)

嗯,你所寻找的宝石肯定是Koala

<强>更新

看起来,您在设置Koala gem的实际配置时遇到了一些问题。让我们完成每一步。

您需要设置新的Koala::Facebook::API。尽管这是一个可怕的名字,但这确实是与你的个人资料用户的联系。要进行此设置,您需要访问Facebook Explorer并点击获取访问令牌按钮(确保使用您要发布消息的帐户进行登录)。只需复制该访问令牌

@user = Koala::Facebook::API.new(access_token)

使用该access_token设置此新@user。现在,只要您在@user上的任何 Graph API 请求中提及“me”,您就会提到此用户(@user)作为该请求的目标。 “我”只是用户自己的Facebook ID。

最后一步是发布到用户的Feed页面。

@user.put_connections("me", "feed", :message => "I am writing on my wall!")

所以,如果你想在墙上张贴一个页面。你可以通过

这样做
@user = Koala::Facebook::API.new(access_token)
page_access_token = @user.get_connections('me', 'accounts').first['access_token'] #this gets the users first page.
@page = Koala::Facebook::API.new(page_access_token)
@page.put_connections(user_id, "feed", :message => "Page writting to user's wall!")

只需访问graph.facebook.com/user_path并获取your_ID。