7

现已修复!但我还不能回答我自己的问题。请参阅下面的评论。并感谢您的帮助。


我已经搜索并搜索并阅读了文档,但仍然无法弄清楚这一点。

我有一个关于活动的网页。我的活动还有一个公开的 Facebook“活动”。我正在尝试使用 FB Javascript SDK 来获取 Facebook 活动的参加者人数,并将其添加到通过网站注册的人数中。

我已经创建了一个应用程序,并且我有一个 appID 和秘密字符串。我可以从以下位置获取访问令牌:

https://graph.facebook.com/oauth/access_token?client_id=XXXX&client_secret=XXXXX&grant_type=client_credentials

然后我可以使用该访问令牌来获取公共活动的参与者:

https://graph.facebook.com/331218348435/attending?access_token=XXXXXXXXX

没关系。

我现在正在尝试使用 Javascript SDK 做同样的事情。

我已经加载了 SDK 并进行了初始化:

FB.init({
  appId  : 'XXXXXXXX',
  status : true, // check login status
  cookie : true, // enable cookies to allow the server to access the session
  xfbml  : true  // parse XFBML
});

而且我知道 SDK 正在工作,因为我可以获得一个包含不需要访问令牌的数据的对象:

FB.api( '/331218348435', function (response) { console.log ( response ) } );

但是当我尝试获取需要访问令牌的与会者数据时:

FB.api( '/331218348435/attending', function (response) { console.log ( response ) } );

我收到 OAuthException:“请求此资源需要访问令牌。”

我能找到的所有教程和信息都是指使用 .login 方法,但我不希望用户登录,我想使用我的应用 ID 登录,无需任何用户交互。

我假设 API 接受了 SDK 的初始化请求并在我调用 .init 方法时授予了我一个访问令牌,对我的网站地址进行身份验证(HTTP 引荐来源网址 - 是的,我已经在 Facebook 应用程序中设置了我的网站 URL设置)。

任何想法可能导致这不起作用?如何在不执行 .login 的情况下使用 Javascript SDK 获取访问令牌?我错过了一步吗?这甚至可能吗?

谢谢

4

2 回答 2

3

形成相当循环的文档所说的,获取参与提要需要一个“通用 access_token”。用脸书的话:

任何有效的 access_token 我们的 API 返回的任何有效的访问令牌。例如,如果访问令牌已过期,则访问令牌可能无效。不需要特殊权限。有时,这被称为通用 access_token。

因此,这意味着只要活动是公开的,您就可以使用任何您喜欢的令牌来访问参加的提要。最容易获得的访问令牌似乎是应用令牌:http: //developers.facebook.com/docs/authentication/#applogin。您可以仅使用您的 App ID 和 Secret 获取此令牌,无需用户交互。

总结链接内容:您可以通过发送 GET 请求来获取应用程序访问令牌

https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&grant_type=client_credentials 

然后,您可以使用该 access_token 为您的出席名单拨打电话

FB.api('MyEvent/attending?access_token=ACCESS_TOKEN');
于 2011-07-08T17:54:08.747 回答
1

哦。好的。

好吧,不管出于什么原因,我出去吃晚饭,回来时一切正常。

当我更新我的应用程序的设置时,Facebook 表示更改可能需要几分钟才能绕过服务器。结果花了一个多小时!

我的代码很好。

谢谢你的帮助。

于 2011-07-09T08:31:36.510 回答