Facebook graph api 在Facebook Graph API中无需用户登录即可获取访问令牌?

Facebook graph api 在Facebook Graph API中无需用户登录即可获取访问令牌?,facebook-graph-api,coldfusion,facebook-javascript-sdk,facebook-php-sdk,Facebook Graph Api,Coldfusion,Facebook Javascript Sdk,Facebook Php Sdk,我正在处理facebook graph api rsvp_事件。我正在使用javascript SDK。当用户登录时,一切都很好。但是当用户未登录时,它会给出一个错误 我需要关于谁参加公共活动的信息。我现在了解到,我需要一个访问令牌来检索此信息。因此,我的问题是如果没有用户登录,如何获取访问令牌?这是不可能的还是有解决方法?是否可以在服务器端使用app\u id和client\u secret 我正在开发一个ColdFusion页面,但如果需要,我可以使用PHP。我支持这两种观点 我听说过“脱机

我正在处理facebook graph api rsvp_事件。我正在使用javascript SDK。当用户登录时,一切都很好。但是当用户未登录时,它会给出一个错误

我需要关于谁参加公共活动的信息。我现在了解到,我需要一个访问令牌来检索此信息。因此,我的问题是如果没有用户登录,如何获取访问令牌?这是不可能的还是有解决方法?是否可以在服务器端使用
app\u id
client\u secret

我正在开发一个ColdFusion页面,但如果需要,我可以使用PHP。我支持这两种观点

我听说过“脱机访问权限”这个词。他们已删除此功能。是否可以在它仍然可用时完成

编辑:

这可以通过测试用户来实现吗?比如说,在服务器端,我通过测试用户登录,获取事件信息(只是一个“获取”请求以读取谁正在参加一个事件),然后注销。在客户端,我执行其余的操作(用户登录、rsvp到事件)

我不太了解“测试用户”或它的用途。有人能确认这是否能够实现吗


提前感谢。

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


要了解更多关于oauth2的信息,请使用它这一非常好的工具来了解oauth2流程。

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

- 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)
你可以在这里获得如何获得这些代币的信息

当您有权访问事件时(当某个用户登录时),最好将参与事件的用户(存储在数据库中)

用于从FileContent获取数据的更新

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

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

  • 以类似于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;
    }
    

如果没有登录的用户,为什么需要访问令牌?@Igy我需要显示谁正在参加公共活动,而不管用户是否登录。我更新了我的问题。你能给我一些关于测试用户的见解吗?谢谢你的回答。我想在没有任何用户交互的情况下完成这一部分(无论他们之前是否登录)。通常,当用户未登录时,这会给我一条oauth错误消息。我真的不明白你说的刷新令牌是什么意思当用户授予你脱机访问权限时,你会得到一个名为
refresh token
的额外令牌。这可以生成你想要的任意多的访问令牌,这是必要的,因为访问令牌过期了,所以当它们过期时,你需要得到新的令牌。Gert,这不是Facebook已经实现的100万令牌。你只是写了我需要的东西。我想知道,如果秘钥不授予任何权限,它有什么用。我必须对来自的令牌进行硬编码。这是可行的,但并不可取。我在这件事上浪费了足够多的时间。我不知道该如何感谢你。干杯。我想把信息存储在数据库中,但它不会显示最新的信息。另一个问题是,如果没有登录用户访问此页面,它将根本不显示信息。但这样问题就解决了:)感谢你。由于我使用coldfusion,我必须找出如何从返回的信息中提取数据。你能给我在这方面的任何指导,因为我不太擅长CF结构。嗯,看起来信息是在结构中返回的,而主数据在Filecontent中。如何在Filecontent中分离
id
name
,因为它们不是结构。嗯,看来我越来越想要:P。我不知道为什么,但我不能提及你。再次感谢。效果很好。我相信我可以管理代码的其余部分。这是一个很大的帮助:)
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;
}