我正在构建一个内部webapp(没有公共访问权限,服务器位于防火墙后面的内部局域网中。)
在这个应用程序中,我们有一个“客户”列表,其中一些给了我们他们的Facebook地址(他们的Facebook页面的ID或URL)。我想在应用程序内部显示他们最近的公开facebook帖子的列表,可能还有一些关于他们的信息(他们是“我们的”朋友吗?他们有多少朋友有这类事情。)
我的公司确实有一个Facebook帐户,我个人也是(我正在使用我自己的Facebook帐户进行测试)。
我尝试使用Koala gem,按照他们网站上的教程:https://github.com/arsduo/koala,但我无法通过身份验证(它只是给我一个身份验证错误)。我在我的账户下在facebook上设置了一个“app”来执行此操作(该应用程序不公开)。
这甚至可以吗?我不想检索自己的帖子,我想使用我的Facebook帐户作为身份验证来检索基本上随机的用户帖子(可能是也可能不是我的“朋友”)。
我已经设法为twitter做了这个(客户提供了Twitter ID,公司有一个带有“app”的推特账号,我使用'twitter'宝石,这一切都很完美。我真的很挣钱虽然...
有没有人成功地做了我想做的事情?
这是我到目前为止所做的事情(使用考拉) IRB>
@graph = Koala::Facebook::API.new("<token obtained from graph explorer")
@graph.get_object("me")
-> <stuff about me>
似乎没问题
@oauth = Koala::Facebook::OAuth.new('<app_id>', '<app_secret>') #no callback_url as there isn't one
@oauth
-> #<Koala::Facebook::OAuth:0x00000004ee1b38 @app_id="1111", @app_secret="1111", @oauth_callback_url=nil>
@oauth.get_app_access_token
-> "111114344655084|-TiiOCKSwgryrWnswdgQK5EAXfs"
到目前为止,这么好
@graph = Koala::Facebook::API.new(@oauth.get_app_access_token)
@graph.get_object("me")
-> Koala::Facebook::AuthenticationError: type: OAuthException, code: 2500, message: An active access token must be used to query information about the current user. [HTTP 400]
这是我不理解的一点:为什么我不能使用我的应用凭据获得有效的auth_token(它们不是1111顺便说一句)?