如何在Parse云代码中访问Facebook Graph API?

4
我需要在我的Parse应用程序中的云函数中获取使用Facebook登录的用户的朋友。我该如何实现这一点?我尝试安装了facebook-node-sdkhttps://github.com/Thuzi/facebook-node-sdk/),但即使我将所有依赖项复制到同一个文件夹中,它仍然抱怨无法加载包当我require时。我还找到了这个问题:How can I get the user first name from facebook in cloud code?但那里的答案不起作用(FB未定义)。我可以使用Parse.Cloud.httpRequest使用我的访问令牌进行原始REST调用到Graph API,但管理端点,访问令牌,参数等很快变得混乱。从Parse Cloud Code访问Facebook Graph API的首选方式是什么?

你在这方面有什么运气吗? - Rambatino
@Rambatino 我已将我的“解决方案”添加为答案。 - Can Poyrazoğlu
1个回答

2

由于我无法使用任何库,所以最终使用了普通的HTTP REST请求。例如,我正在尝试获取用户的姓名、性别和用户ID,我使用了手动构建URL的代码(其中我有用户的token访问令牌变量:

Parse.Cloud.httpRequest({
  url: 'https://graph.facebook.com/v2.1/me?fields=id,gender,name&access_token=' + token,
  success: function(httpResponse) {
     var responseData = httpResponse.data;
     ...

其中responseData现在是一个包含返回数据的JSON对象。虽然不是最好的解决方案,但对于简单任务来说非常有效。


1
我刚刚在评论后不到一个小时就使用了这种方法!太棒了,而且还有效!尽管现在大多数用户可能已经使用v2.2 :).另外,如果有人在包含authData之后仍然对其感到困惑,我仍然需要fetch()用户才能实际定义authData字段:s - Rambatino
可能有点晚了,但我一直在尝试使用这个解决方案,但无济于事。访问令牌不被接受,图形 API 返回一个错误,说访问令牌不活动。你遇到过这个问题吗? - BarakChamo
你首先应该从哪里获取访问令牌呢? - fatuhoku
@fatuhoku 请尝试使用 user.get('authData')['facebook']['access_token']; - Can Poyrazoğlu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接