4

我正在使用 facebook graph api rsvp_event。我正在使用 JavaScript SDK。用户登录时一切正常。但是当用户未登录时,它会出错。

我需要有关谁参加公共活动的信息。我现在明白我需要一个访问令牌来检索此信息。所以,我的问题是如果没有用户登录,我如何获得访问令牌?这是不可能的还是有解决方法?可以在服务器端使用app_idand完成client_secret吗?

我正在开发一个 ColdFusion 页面,但如果需要,我可以使用 PHP。我对两者都有支持。

我听说过 *offline_access_permission* 这个词。他们已删除此功能。可以在它仍然可用的时候完成吗?

编辑:

这可以通过以下方式实现test user吗?比如说,在服务器端我通过测试用户登录,获取事件信息(只是一个“获取”请求来读取谁正在参加一个事件)然后注销。在客户端,我做剩下的事情(用户登录,回复一个事件)。

我不太了解“测试用户”或其目的。谁能确认这是否可以实现?

提前致谢。

4

2 回答 2

2

您确定您确实需要用户的访问令牌吗?根据此处的文档,您可能需要:

- a generic access_token for public events (those whose privacy is set to OPEN)
- a user access_token for a user who can see the event for non-public events
- an app access_token (for non-public events, must be the app that created the event)
- a page access_token (for non-public events, must be the page that created the event)

您可以在此处获取有关如何获取这些令牌的信息https://developers.facebook.com/docs/concepts/login/access-tokens-and-types/

一个好主意可能是在您有权访问事件时存储参加用户(在数据库中) - 当某个用户登录时。

从 FileContent 获取数据的更新。

我不知道您到底指的是什么 API 响应,但根据我的经验,它们正在返回数据: - 使用 JSON 序列化 - 您需要使用 DeserializeJSON(),例如像这样:

local.returnStruct = DeserializeJSON( local.requestResult.FileContent );

或者

local.returnStruct = DeserializeJSON( local.requestResult.FileContent.toString() );
  • 以类似于 URI 的形式发送。我正在使用一个函数来获取该数据:

    function getStructFromQueryString( queryString ) {
        var ret = StructNew();
        var i = 0;
        var key = '';
    
        for(i=1; i LTE ListLen(arguments.queryString,'&'); i++) {
            key = ListGetAt(arguments.queryString, i, '&');
            ret[ListFirst(key,'=')] = URLDecode(ListLast(key,"="));
        }
    
        return ret;
    }
    
于 2013-01-22T07:42:40.533 回答
1

基本上你想要的是一个刷新令牌,当用户离线时可以获得访问令牌,不幸的是,据我所知,facebook不再提供它们。

要了解有关 oauth2 的更多信息,请使用https://developers.google.com/oauthplayground/ ,它是了解 oauth2 过程的非常好的工具。

于 2013-01-22T01:22:43.380 回答