如何验证facebook命令行应用程序(Ruby)

时间:2013-01-27 15:03:30

标签: ruby facebook facebook-graph-api command-line gem

我正在尝试构建一个简单的ruby命令行facebook客户端,它将所有用户的朋友显示在屏幕上(fb_friends.rb),我正在使用fb_graph ruby​​ gem:https://github.com/nov/fb_graph

问题是,user.friends方法需要让用户首先验证应用程序。

我在这里读到了类似的问题:Ruby Command line application to update Facebook Status

根据我的理解,您无法在命令行中对用户进行身份验证。 我的问题是:有没有其他方法来验证用户?

我在想:在身份验证时,会弹出用户系统的默认Web浏览器,然后用户将授予访问权限并进行身份验证,现在浏览器窗口将关闭,用户将返回命令行应用程序在那里,他可以看到他的朋友名单。

这可能吗? 感谢

1 个答案:

答案 0 :(得分:0)

如果没有共享服务器端身份验证令牌,Open Graph应用程序目前无法实现这一点。 Facebook要求您保持对应用程序身份验证令牌的控制(而不是共享)。如果用户滥用命令行应用程序,并使用您的应用程序ID和令牌向服务器发出大量请求,那么您就是那个问题。

实现目标的最佳方法是在您的命令行应用程序和Facebook图形API之间控制服务器。命令行api可以将用户引导到您的网站,在那里他们将点击“Facebook Connect”按钮。用户可以使用您的服务器对应用程序进行身份验证,并且您可以为他们提供可以与其用户ID配对的令牌,以发布状态更新或通过您的服务器检索朋友。

命令行api将与您的服务器以及您的服务器与Facebook Graph API进行交互。

这种方法的另一个好处是,如果Facebook的API发生变化,您的客户就不会破坏(无需更改自己服务器的API)。