5

以前很容易区分桌面应用程序和 Web 应用程序,但今天在阅读文档时我注意到这种差异不太明显。

我正在使用 Facebook::Graph 模块创建桌面应用程序,但仍然无法超越配置阶段。我被困在身份验证阶段:

my $ q = Plack::Request->new($env);
$fb->request_access_token($q->query_param('code'));

http://metacpan.org/pod/Facebook::Graph

它一直告诉我“需要$ env”。阅读文档后,我意识到 Plack 只关注 Web 应用程序。

http://metacpan.org/pod/Plack::Request

你能证实这一点吗?如果没有,我该如何通过这一步?

使用 Mechanize 获取 access_token 然后按照文档中的描述发出 GET 请求不会有问题,但我不想让我的存在复杂化,所以如果有其他方法......

4

2 回答 2

5

有点晚了,但有一个解决方法。

要获取访问令牌,请查看此处:

https://developers.facebook.com/docs/howtos/login/login-for-desktop/

  1. 只需使用 Mechanize 或您想要的任何内容创建一个客户端,然后使用所需的凭据登录

  2. 按照描述执行请求

  3. 从授权页面继续

  4. 解析响应并获取令牌

$fb->access_token($token);
于 2012-11-30T17:47:47.947 回答
1

http://developers.facebook.com/docs/reference/api/application/说:

注意:配置为本机/桌面应用程序的应用程序将无法进行需要应用程序access_token的 API 调用。

所以不是 Plack,是 Facebook 要求你的应用程序是网络的。但是,如果您可以避免access_token请求,它可能会起作用。

于 2012-10-22T20:35:33.530 回答