Facebook graph api 在Facebook Graph API中无需用户登录即可获取访问令牌?
我正在处理facebook graph api rsvp_事件。我正在使用javascript SDK。当用户登录时,一切都很好。但是当用户未登录时,它会给出一个错误 我需要关于谁参加公共活动的信息。我现在了解到,我需要一个访问令牌来检索此信息。因此,我的问题是如果没有用户登录,如何获取访问令牌?这是不可能的还是有解决方法?是否可以在服务器端使用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。我支持这两种观点 我听说过“脱机
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; }
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;
}