我想在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
权限。
答案 0 :(得分:6)
<强>更新强>
看起来,您在设置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。