我为我的rails应用程序制作了一个facebook粉丝页面,我希望能够将rails应用程序中的数据发布到facebook粉丝专区的墙上.
经过大量的网络挖掘后,我发现我对很多术语感到困惑.我发现的大多数解决方案,包括fb_graph gem都要求ACCESS_TOKEN,它需要APP_SECRET和APP_ID.我可以找到该页面的ID,但我不认为我只能获得一个正常的粉丝页面的APP_SECRET.
me = FbGraph::User.me(ACCESS_TOKEN) me.Feed!( :message => 'Updating via FbGraph',:picture => 'https://graph.facebook.com/matake/picture',:link => 'http://github.com/nov/fb_graph',:name => 'FbGraph',:description => 'A Ruby wrapper for Facebook Graph API' )
哪个好,除了我不知道我是否可以在没有APP_SECRET和APP_ID的情况下获得ACCESS_TOKEN.
我需要创建一个Facebook应用程序吗? (我认为这与普通粉丝页面不同…)我希望用户能够“喜欢”页面,以便我在新闻Feed中发布的内容也会显示在他们的新闻Feed中.
它只有一页,我认为我不需要通过OAUTH验证用户…我不希望它们发布在页面的墙上,只是发布在它自己的墙上的页面.但我希望它能实现自动化.
我怎样才能做到这一点?
解决方法
简短的回答是,你需要一个Facebook应用程序.请参阅本答案末尾的警告.
正如您所发现的,所有与Facebook的外部交互都是通过访问令牌的用户进行的.要获取用户的访问令牌,应用程序必须根据您的应用程序App ID和App Secret将用户转发到特殊URL,这是他们将在权限对话框中显示的位置:
一旦用户批准该应用程序,Facebook就会将它们发送回附加了特殊代码的回调URL.此代码可用于获取用户的访问令牌,然后用户可以在Facebook上以该用户身份执行操作(基于您的Facbook应用程序请求的权限).
由于您只希望自己的帐户/应用程序能够发布到墙上,因此一个好主意是获取永久访问令牌并将该令牌存储在您的应用程序的某个位置.虽然OAuth 2确实支持非Web应用程序的“用户代理流程”,但Facebook不直接支持它.有关详细信息,请参阅https://developers.facebook.com/docs/authentication/的“桌面应用程序”部分.